home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_c25.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  92KB  |  3,869 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9.  
  10.  
  11. void r388c_assertion_flag(T388* C){
  12. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  13. /*]*/
  14. r388c_frame_descriptor_name_in(C,((T0*)ms51_3077376));
  15. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_30510));
  16. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  17. /*]*/
  18. }
  19.  
  20.  
  21. void r388c_define_opening(T388* C){
  22. T0* _t=NULL;
  23. /*[IF*/
  24. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  25. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_21736));
  26. /*]*/
  27. }
  28. /*FI]*/
  29. /*[IF*/
  30. /*AF*/if(((C)->_result_type/*40*/)!=((void*)(NULL))){
  31. _t=X54run_type((C)->_result_type/*40*/);
  32. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  33. /*]*/
  34. X54c_type_for_result_in(_t,((T0*)ms51_3077376));
  35. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_543));
  36. X54c_initialize_in(_t,((T0*)ms51_3077376));
  37. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_144));
  38. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  39. /*]*/
  40. /*[IF*/
  41. if(r43no_check((T43*)(oBC12run_control))){
  42. r7append((T7*)(oBC12c_frame_descriptor_locals),((T0*)ms51_10703));
  43. r204increment((T204*)(oBC12c_frame_descriptor_local_count));
  44. r7append((T7*)(oBC12c_frame_descriptor_format),((T0*)ms14_7404));
  45. X54c_frame_descriptor(_t);
  46. }
  47. /*FI]*/
  48. }
  49. /*FI]*/
  50. /*[IF*/
  51. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  52. r178c_declare((T178*)((C)->_local_vars/*44*/));
  53. }
  54. /*FI]*/
  55. /*[IF*/
  56. if(r43ensure_check((T43*)(oBC12run_control))){
  57. /*[IF*/
  58. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  59. r215c_declare_for_old((T215*)((C)->_ensure_assertion/*24*/));
  60. }
  61. /*FI]*/
  62. }
  63. /*FI]*/
  64. /*[IF*/
  65. if(r43no_check((T43*)(oBC12run_control))){
  66. /*[IF*/
  67. if((((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)>(0)){
  68. r7copy((T7*)(((T0*)ms51_3077376)),((T0*)ms51_21762));
  69. /*[IRF3.5append_in*/r2append_in(((T2)(((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)),((T0*)ms51_3077376));
  70. /*]*/
  71. r7extend((T7*)(((T0*)ms51_3077376)),'\135');
  72. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_144));
  73. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  74. /*]*/
  75. }
  76. /*FI]*/
  77. r388c_initialize_ds_one_by_one(C);
  78. /*[IRF3.2c_initialize_locals_one_by_one*/{T3 _c=0;
  79. T2 _j=0;
  80. T2 _i=0;
  81. _j=1;
  82. while (!((((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)==(_i))) {
  83. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_8225));
  84. /*]*/
  85. /*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),_i);
  86. /*]*/
  87. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_314));
  88. /*]*/
  89. _c=/*(IRF4.6item*/(((T7*)(oBC12c_frame_descriptor_locals))->_storage/*0*/)[(_j)-(1)]/*)*/;
  90. while (!((_c)==('\54'))) {
  91. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  92. T3 b1=_c;
  93. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  94. }/*]*/
  95. /*]*/
  96. _j=(_j)+(1);
  97. _c=/*(IRF4.6item*/(((T7*)(oBC12c_frame_descriptor_locals))->_storage/*0*/)[(_j)-(1)]/*)*/;
  98. }
  99. _j=(_j)+(1);
  100. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_144));
  101. /*]*/
  102. _i=(_i)+(1);
  103. }
  104. }/*]*/
  105. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_14820a));
  106. /*]*/
  107. }
  108. /*FI]*/
  109. /*[IF*/
  110. if(r43ensure_check((T43*)(oBC12run_control))){
  111. /*[IF*/
  112. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  113. r215compile_to_c_old((T215*)((C)->_ensure_assertion/*24*/));
  114. }
  115. /*FI]*/
  116. }
  117. /*FI]*/
  118. /*[IF*/
  119. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  120. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_23488));
  121. /*]*/
  122. /*[IF*/
  123. if(r43no_check((T43*)(oBC12run_control))){
  124. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_147634));
  125. /*]*/
  126. }
  127. /*FI]*/
  128. r216compile_to_c((T216*)((C)->_rescue_compound/*52*/));
  129. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_48457));
  130. /*]*/
  131. }
  132. /*FI]*/
  133. /*[IF*/
  134. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  135. r178initialize_expanded((T178*)((C)->_local_vars/*44*/));
  136. }
  137. /*FI]*/
  138. /*[IF*/
  139. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  140. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_7601));
  141. /*]*/
  142. }
  143. /*FI]*/
  144. /*[IF*/
  145. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  146. r357compile_to_c((T357*)((C)->_require_assertion/*20*/));
  147. }
  148. /*FI]*/
  149. /*[IF*/
  150. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  151. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_58520));
  152. /*]*/
  153. /*[IF*/
  154. if(r43no_check((T43*)(oBC12run_control))){
  155. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_14820));
  156. /*]*/
  157. }
  158. /*FI]*/
  159. }
  160. /*FI]*/
  161. }
  162.  
  163.  
  164. void r388c_define_closing(T388* C){
  165. /*[IF*/
  166. if(r43ensure_check((T43*)(oBC12run_control))){
  167. /*[IF*/
  168. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  169. r215compile_to_c((T215*)((C)->_ensure_assertion/*24*/));
  170. }
  171. /*FI]*/
  172. }
  173. /*FI]*/
  174. /*[IF*/
  175. if(r388use_current(C)){
  176. r25current_class_invariant((C)->_current_type/*4*/);
  177. }
  178. /*FI]*/
  179. /*[IF*/
  180. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  181. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_25830));
  182. /*]*/
  183. }
  184. /*FI]*/
  185. /*[IF*/
  186. if(r43no_check((T43*)(oBC12run_control))){
  187. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_19775));
  188. /*]*/
  189. }
  190. /*FI]*/
  191. }
  192.  
  193.  
  194. T6 r388empty_or_null_body(T388* C){
  195. T6 R=0;
  196. T0* _rb=NULL;
  197. _rb=(C)->_routine_body/*48*/;
  198. /*[IF*/
  199. if((((_rb)==((void*)(NULL)))||(/*(IRF4.7empty_or_null_body*/((((T216*)_rb))->_first_one/*8*/)==(NULL)/*)*/))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  200. C->_static_value_mem=0;
  201. C->_is_static_flag=1;
  202. R=1;
  203. }
  204. /*FI]*/
  205. return R;
  206. }
  207. /*No:RUN_FEATURE_4.use_current_state*/
  208. /*No:RUN_FEATURE_4.fz_void*/
  209.  
  210.  
  211. void r388address_of_c_define(T388* C,T0* a1){
  212. /*[IF*/
  213. if(r43boost((T43*)(oBC12run_control))){
  214. /*[IF*/
  215. if(r388isa_in_line(C)){
  216. r388address_of_c_define_wrapper(C,a1);
  217. }
  218.  else if(r388use_current(C)){
  219. }
  220. else{
  221. r388address_of_c_define_wrapper(C,a1);
  222. }
  223. /*FI]*/
  224. }
  225. else{
  226. r388address_of_c_define_wrapper(C,a1);
  227. }
  228. /*FI]*/
  229. }
  230. /*No:RUN_FEATURE_4.is_static_flag*/
  231.  
  232.  
  233. T6 r388is_static(T388* C){
  234. T6 R=0;
  235. /*[IF*/
  236. if(r388isa_in_line(C)){
  237. R=(C)->_is_static_flag/*64*/;
  238. }
  239. /*FI]*/
  240. return R;
  241. }
  242. /*No:RUN_FEATURE_4.C_empty_or_null_body*/
  243. /*No:RUN_FEATURE_4.ucs_false*/
  244.  
  245.  
  246. T0* r388start_position(T388* C){
  247. T0* R=NULL;
  248. R=r303start_position((T303*)((C)->_base_feature/*32*/));
  249. return R;
  250. }
  251.  
  252.  
  253. T0* r388is_attribute_reader(T388* C){
  254. T0* R=NULL;
  255. T0* _rf=NULL;
  256. T0* _c0=NULL;
  257. /*[IF*/
  258. if(r388isa_in_line(C)){
  259. /*[IF*/
  260. if(((C)->_in_line_status/*60*/)==(3)){
  261. _c0=r388body_one_result(C);
  262. if(NULL!=(_c0))switch(((T0*)_c0)->id) {
  263. case 145: case 139: case 150: case 144: case 143: 
  264. break;
  265. default:
  266. _c0=NULL;
  267. };_rf=X141run_feature(_c0);
  268. R=/*X51name*/((T0*)(((T324*)_rf))->_name/*16*/);
  269. }
  270. /*FI]*/
  271. }
  272. /*FI]*/
  273. return R;
  274. }
  275. /*No:RUN_FEATURE_4.c_initialize_locals_one_by_one*/
  276.  
  277.  
  278. void r388mapping_name(T388* C){
  279. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  280. T3 b1='r';
  281. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  282. }/*]*/
  283. /*]*/
  284. /*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),r388id(C));
  285. /*]*/
  286. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X83to_key((C)->_name/*16*/));
  287. /*]*/
  288. }
  289.  
  290.  
  291. T0* r388body_one_result(T388* C){
  292. T0* R=NULL;
  293. T0* _a=NULL;
  294. T0* _rb=NULL;
  295. _rb=(C)->_routine_body/*48*/;
  296. /*[IF*/
  297. if(((_rb)!=((void*)(NULL)))&&((r216count(((T216*)_rb)))==(1))){
  298. _a=/*(IRF4.3first*/(((T216*)_rb))->_first_one/*8*//*)*/;
  299. if(NULL!=(_a))switch(((T0*)_a)->id) {
  300. case 282: 
  301. break;
  302. default:
  303. _a=NULL;
  304. };/*[IF*/
  305. if((_a)!=((void*)(NULL))){
  306. /*[IF*/
  307. if(X56is_result((((T282*)_a))->_left_side/*4*/)){
  308. R=(((T282*)_a))->_right_side/*8*/;
  309. }
  310. /*FI]*/
  311. }
  312. /*FI]*/
  313. }
  314. /*FI]*/
  315. return R;
  316. }
  317.  
  318.  
  319. T6 r388isa_in_line(T388* C){
  320. T6 R=0;
  321. /*[IF*/
  322. if(r43boost((T43*)(oBC12run_control))){
  323. {int z1=(C)->_in_line_status/*60*/;
  324.  
  325. if((-1==z1)){
  326. }
  327.  else 
  328. if((0==z1)){
  329. R=1;
  330. /*[IF*/
  331. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  332. C->_in_line_status=-(1);
  333. R=0;
  334. }
  335.  else if(r388empty_or_null_body(C)){
  336. C->_in_line_status=1;
  337. }
  338.  else if(r388value_reader(C)){
  339. C->_in_line_status=2;
  340. }
  341.  else if(r388attribute_reader(C)){
  342. C->_in_line_status=3;
  343. }
  344.  else if(r388result_is_current(C)){
  345. C->_in_line_status=4;
  346. }
  347.  else if(r388direct_call(C)){
  348. C->_in_line_status=5;
  349. }
  350.  else if(r388dca(C)){
  351. C->_in_line_status=6;
  352. }
  353.  else if(r388a_eq_neq(C)){
  354. C->_in_line_status=7;
  355. }
  356.  else if(r388dc_pco1(C)){
  357. C->_in_line_status=8;
  358. }
  359.  else if(r388dc_pco2(C)){
  360. C->_in_line_status=9;
  361. }
  362.  else if(r388direct_cse_call(C)){
  363. C->_in_line_status=10;
  364. }
  365. else{
  366. C->_in_line_status=-(1);
  367. R=0;
  368. }
  369. /*FI]*/
  370. }
  371.  else{R=1;
  372. }}
  373. }
  374. /*FI]*/
  375. return R;
  376. }
  377.  
  378.  
  379. T6 r388use_current(T388* C){
  380. T6 R=0;
  381. {int z1=(C)->_use_current_state/*28*/;
  382.  
  383. if((14==z1)){
  384. R=1;
  385. }
  386.  else 
  387. if((13==z1)){
  388. }
  389.  else 
  390. if((15==z1)){
  391. C->_use_current_state=16;
  392. r388compute_use_current(C);
  393. R=r388use_current(C);
  394. }
  395.  else {R=1;
  396. }}
  397. return R;
  398. }
  399.  
  400.  
  401. T2 r388id(T388* C){
  402. T2 R=0;
  403. R=X54id((C)->_current_type/*4*/);
  404. return R;
  405. }
  406.  
  407.  
  408. void r388routine_afd_check(T388* C){
  409. /*[IF*/
  410. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  411. r357afd_check((T357*)((C)->_require_assertion/*20*/));
  412. }
  413. /*FI]*/
  414. /*[IF*/
  415. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  416. r216afd_check((T216*)((C)->_routine_body/*48*/));
  417. }
  418. /*FI]*/
  419. /*[IF*/
  420. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  421. r216afd_check((T216*)((C)->_rescue_compound/*52*/));
  422. }
  423. /*FI]*/
  424. /*[IF*/
  425. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  426. r215afd_check((T215*)((C)->_ensure_assertion/*24*/));
  427. }
  428. /*FI]*/
  429. }
  430.  
  431.  
  432. T6 r388value_reader(T388* C){
  433. T6 R=0;
  434. T0* _c0=NULL;
  435. T0* _e=NULL;
  436. _e=r388body_one_result(C);
  437. /*[IF*/
  438. if(((_e)!=((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  439. _c0=_e;
  440. if(NULL!=(_c0))switch(((T0*)_c0)->id) {
  441. case 145: case 139: case 150: case 144: case 143: 
  442. break;
  443. default:
  444. _c0=NULL;
  445. };/*[IF*/
  446. if((((_c0)!=((void*)(NULL)))&&(X56is_current(/*X141target*/((T0*)(((T145*)_c0))->_target/*4*/))))&&((X141run_feature(_c0))==((void*)(C)))){
  447. r21add_position(X56start_position(_e));
  448. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms388_38856);
  449. r21fatal_error((T21*)(oBC12eh),b1);
  450. }/*]*/
  451. }
  452.  else if(X56is_static(_e)){
  453. R=1;
  454. C->_static_value_mem=X56static_value(_e);
  455. C->_is_static_flag=1;
  456. }
  457. /*FI]*/
  458. }
  459. /*FI]*/
  460. return R;
  461. }
  462.  
  463.  
  464. T0* r388body_one_dc_pco(T388* C){
  465. T0* R=NULL;
  466. T0* _args=NULL;
  467. T0* _c=NULL;
  468. _c=r388body_one_result(C);
  469. if(NULL!=(_c))switch(((T0*)_c)->id) {
  470. case 132: case 119: case 113: case 145: case 121: case 123: case 130: case 122: case 120: case 153: case 137: case 139: case 133: case 124: case 126: case 135: case 194: case 152: case 150: case 134: case 125: case 127: case 128: case 136: case 144: case 131: case 143: 
  471. break;
  472. default:
  473. _c=NULL;
  474. };/*[IF*/
  475. if((((_c)!=((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL))))&&(((C)->_arguments/*36*/)==((void*)(NULL)))){
  476. _args=X117arguments(_c);
  477. /*[IF*/
  478. if(((_args)==((void*)(NULL)))||(X149is_static(_args))){
  479. R=_c;
  480. }
  481. /*FI]*/
  482. }
  483. /*FI]*/
  484. return R;
  485. }
  486. /*No:RUN_FEATURE_4.C_result_is_current*/
  487.  
  488.  
  489. T6 r388direct_cse_call(T388* C){
  490. T6 R=0;
  491. T0* _rf8=NULL;
  492. T0* _c=NULL;
  493. /*[IF*/
  494. if((((C)->_arguments/*36*/)==((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  495. _c=r388body_one_result(C);
  496. if(NULL!=(_c))switch(((T0*)_c)->id) {
  497. case 132: case 119: case 113: case 145: case 121: case 123: case 130: case 122: case 120: case 153: case 137: case 139: case 133: case 124: case 126: case 135: case 194: case 152: case 150: case 134: case 125: case 127: case 128: case 136: case 144: case 131: case 143: 
  498. break;
  499. default:
  500. _c=NULL;
  501. };/*[IF*/
  502. if(((_c)!=((void*)(NULL)))&&((X117arguments(_c))==((void*)(NULL)))){
  503. _c=/*X117target*/((T0*)(((T132*)_c))->_target/*4*/);
  504. if(NULL!=(_c))switch(((T0*)_c)->id) {
  505. case 132: case 119: case 113: case 145: case 121: case 123: case 130: case 122: case 120: case 153: case 137: case 139: case 133: case 124: case 126: case 135: case 194: case 152: case 150: case 134: case 125: case 127: case 128: case 136: case 144: case 131: case 143: 
  506. break;
  507. default:
  508. _c=NULL;
  509. };/*[IF*/
  510. if(((_c)!=((void*)(NULL)))&&(X56is_current(/*X117target*/((T0*)(((T132*)_c))->_target/*4*/)))){
  511. /*[IF*/
  512. if((X117arguments(_c))==((void*)(NULL))){
  513. _rf8=X117run_feature(_c);
  514. if(NULL!=(_rf8))switch(((T0*)_rf8)->id) {
  515. case 384: 
  516. break;
  517. default:
  518. _rf8=NULL;
  519. };/*[IF*/
  520. if((_rf8)!=((void*)(NULL))){
  521. R=(X83to_string((((T384*)_rf8))->_name/*16*/))==((void*)(((T0*)ms14_17000)));
  522. }
  523. /*FI]*/
  524. }
  525. /*FI]*/
  526. }
  527. /*FI]*/
  528. }
  529. /*FI]*/
  530. }
  531. /*FI]*/
  532. return R;
  533. }
  534.  
  535.  
  536. void r388std_compute_use_current(T388* C){
  537. /*[IF*/
  538. if(((C)->_use_current_state/*28*/)==(16)){
  539. /*[IF*/
  540. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  541. /*[IF*/
  542. if(r357use_current((T357*)((C)->_require_assertion/*20*/))){
  543. C->_use_current_state=14;
  544. }
  545. /*FI]*/
  546. }
  547. /*FI]*/
  548. }
  549. /*FI]*/
  550. /*[IF*/
  551. if(((C)->_use_current_state/*28*/)==(16)){
  552. /*[IF*/
  553. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  554. /*[IF*/
  555. if(r216use_current((T216*)((C)->_routine_body/*48*/))){
  556. C->_use_current_state=14;
  557. }
  558. /*FI]*/
  559. }
  560. /*FI]*/
  561. }
  562. /*FI]*/
  563. /*[IF*/
  564. if(((C)->_use_current_state/*28*/)==(16)){
  565. /*[IF*/
  566. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  567. /*[IF*/
  568. if(r216use_current((T216*)((C)->_rescue_compound/*52*/))){
  569. C->_use_current_state=14;
  570. }
  571. /*FI]*/
  572. }
  573. /*FI]*/
  574. }
  575. /*FI]*/
  576. /*[IF*/
  577. if(((C)->_use_current_state/*28*/)==(16)){
  578. /*[IF*/
  579. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  580. /*[IF*/
  581. if(r215use_current((T215*)((C)->_ensure_assertion/*24*/))){
  582. C->_use_current_state=14;
  583. }
  584. /*FI]*/
  585. }
  586. /*FI]*/
  587. }
  588. /*FI]*/
  589. /*[IF*/
  590. if(((C)->_use_current_state/*28*/)==(16)){
  591. C->_use_current_state=13;
  592. }
  593. /*FI]*/
  594. }
  595.  
  596.  
  597. T0* r388run_class(T388* C){
  598. T0* R=NULL;
  599. R=X54run_class((C)->_current_type/*4*/);
  600. return R;
  601. }
  602. /*No:RUN_FEATURE_4.result_type*/
  603. /*No:RUN_FEATURE_4.base_feature*/
  604. /*No:RUN_FEATURE_4.C_dca*/
  605. /*No:RUN_FEATURE_4.static_value_mem*/
  606. /*No:RUN_FEATURE_4.ensure_assertion*/
  607.  
  608.  
  609. void r388address_of_c_mapping_wrapper(T388* C){
  610. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  611. /*]*/
  612. r388address_of_wrapper_name_in(C,((T0*)ms51_3077376));
  613. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  614. /*]*/
  615. }
  616.  
  617.  
  618. T6 r388is_exported_in(T388* C,T0* a1){
  619. T6 R=0;
  620. R=r101gives_permission_to((T101*)(r388clients(C)),a1);
  621. return R;
  622. }
  623. /*No:RUN_FEATURE_4.fz_close_c_comment*/
  624. /*No:RUN_FEATURE_4.C_direct_cse_call*/
  625. /*No:RUN_FEATURE_4.fatal_error*/
  626.  
  627.  
  628. void r388default_mapping_function(T388* C){
  629. T6 _tcbd=0;
  630. T6 _uc=0;
  631. T6 _no_check=0;
  632. _no_check=r43no_check((T43*)(oBC12run_control));
  633. _uc=r388use_current(C);
  634. /*[IF*/
  635. if(!(_uc)){
  636. _tcbd=r25target_cannot_be_dropped((T25*)(oBC12cpp));
  637. /*[IF*/
  638. if(_tcbd){
  639. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  640. T3 b1='\54';
  641. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  642. }/*]*/
  643. /*]*/
  644. }
  645. /*FI]*/
  646. }
  647. /*FI]*/
  648. r388mapping_name(C);
  649. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  650. T3 b1='\50';
  651. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  652. }/*]*/
  653. /*]*/
  654. /*[IF*/
  655. if(_no_check){
  656. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_777));
  657. /*]*/
  658. }
  659. /*FI]*/
  660. /*[IF*/
  661. if(_uc){
  662. /*[IF*/
  663. if(_no_check){
  664. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  665. T3 b1='\54';
  666. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  667. }/*]*/
  668. /*]*/
  669. }
  670. /*FI]*/
  671. r25put_target_as_target((T25*)(oBC12cpp));
  672. }
  673. /*FI]*/
  674. /*[IF*/
  675. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  676. /*[IF*/
  677. if((_uc)||(_no_check)){
  678. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  679. T3 b1='\54';
  680. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  681. }/*]*/
  682. /*]*/
  683. }
  684. /*FI]*/
  685. r25put_arguments((T25*)(oBC12cpp));
  686. }
  687. /*FI]*/
  688. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  689. T3 b1='\51';
  690. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  691. }/*]*/
  692. /*]*/
  693. /*[IF*/
  694. if((!(_uc))&&(_tcbd)){
  695. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  696. T3 b1='\51';
  697. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  698. }/*]*/
  699. /*]*/
  700. }
  701. /*FI]*/
  702. }
  703. /*No:RUN_FEATURE_4.arguments*/
  704. /*No:RUN_FEATURE_4.is_once_function*/
  705. /*No:RUN_FEATURE_4.in_line_status*/
  706. /*No:RUN_FEATURE_4.C_direct_call*/
  707.  
  708.  
  709. void r388address_of_wrapper_name_in(T388* C,T0* a1){
  710. r7extend(((T7*)a1),'W');
  711. r2append_in(r388id(C),a1);
  712. r7append(((T7*)a1),X83to_key((C)->_name/*16*/));
  713. }
  714.  
  715.  
  716. T6 r388direct_call(T388* C){
  717. T6 R=0;
  718. T0* _rf4=NULL;
  719. T0* _args=NULL;
  720. T0* _c=NULL;
  721. T0* _e=NULL;
  722. _e=r388body_one_result(C);
  723. /*[IF*/
  724. if((((_e)!=((void*)(NULL)))&&(((C)->_arguments/*36*/)==((void*)(NULL))))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  725. _c=_e;
  726. if(NULL!=(_c))switch(((T0*)_c)->id) {
  727. case 132: case 119: case 113: case 145: case 121: case 123: case 130: case 122: case 120: case 153: case 137: case 139: case 133: case 124: case 126: case 135: case 194: case 152: case 150: case 134: case 125: case 127: case 128: case 136: case 144: case 131: case 143: 
  728. break;
  729. default:
  730. _c=NULL;
  731. };/*[IF*/
  732. if((_c)!=((void*)(NULL))){
  733. /*[IF*/
  734. if(X56is_current(/*X117target*/((T0*)(((T132*)_c))->_target/*4*/))){
  735. _rf4=X117run_feature(_c);
  736. if(NULL!=(_rf4))switch(((T0*)_rf4)->id) {
  737. case 388: 
  738. break;
  739. default:
  740. _rf4=NULL;
  741. };/*[IF*/
  742. if((_rf4)!=((void*)(NULL))){
  743. _args=X117arguments(_c);
  744. /*[IF*/
  745. if((_args)==((void*)(NULL))){
  746. R=1;
  747. }
  748. else{
  749. R=X149is_static(_args);
  750. }
  751. /*FI]*/
  752. }
  753. /*FI]*/
  754. }
  755. /*FI]*/
  756. }
  757. /*FI]*/
  758. }
  759. /*FI]*/
  760. return R;
  761. }
  762.  
  763.  
  764. T0* r388is_direct_call_on_attribute(T388* C){
  765. T0* R=NULL;
  766. T0* _c=NULL;
  767. /*[IF*/
  768. if(r388isa_in_line(C)){
  769. {int z1=(C)->_in_line_status/*60*/;
  770.  
  771. if((6==z1)){
  772. _c=r388body_one_result(C);
  773. if(NULL!=(_c))switch(((T0*)_c)->id) {
  774. case 132: case 119: case 113: case 145: case 121: case 123: case 130: case 122: case 120: case 153: case 137: case 139: case 133: case 124: case 126: case 135: case 194: case 152: case 150: case 134: case 125: case 127: case 128: case 136: case 144: case 131: case 143: 
  775. break;
  776. default:
  777. _c=NULL;
  778. };_c=/*X117target*/((T0*)(((T132*)_c))->_target/*4*/);
  779. if(NULL!=(_c))switch(((T0*)_c)->id) {
  780. case 132: case 119: case 113: case 145: case 121: case 123: case 130: case 122: case 120: case 153: case 137: case 139: case 133: case 124: case 126: case 135: case 194: case 152: case 150: case 134: case 125: case 127: case 128: case 136: case 144: case 131: case 143: 
  781. break;
  782. default:
  783. _c=NULL;
  784. };R=X117run_feature(_c);
  785. }
  786. }
  787. }
  788. /*FI]*/
  789. return R;
  790. }
  791.  
  792.  
  793. T6 r388dca(T388* C){
  794. T6 R=0;
  795. T0* _args=NULL;
  796. T0* _rf=NULL;
  797. T0* _c=NULL;
  798. _c=r388body_one_result_dca(C);
  799. /*[IF*/
  800. if(((_c)!=((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  801. _rf=X117run_feature(_c);
  802. /*[IF*/
  803. if((_rf)!=((void*)(NULL))){
  804. /*[IF*/
  805. if((_rf)!=((void*)(C))){
  806. /*[IF*/
  807. if(X54is_user_expanded(/*X51current_type*/((T0*)(((T324*)_rf))->_current_type/*4*/))){
  808. }
  809. else{
  810. _args=X117arguments(_c);
  811. /*[IF*/
  812. if((_args)==((void*)(NULL))){
  813. R=(r388arg_count(C))==(0);
  814. }
  815. else{
  816. R=X149isa_dca_inline(_args,(T0*)C,_rf);
  817. }
  818. /*FI]*/
  819. }
  820. /*FI]*/
  821. }
  822. /*FI]*/
  823. }
  824. /*FI]*/
  825. }
  826. /*FI]*/
  827. return R;
  828. }
  829. /*No:RUN_FEATURE_4.clients_memory*/
  830. /*No:RUN_FEATURE_4.current_type*/
  831. /*No:RUN_FEATURE_4.C_dc_pco1*/
  832.  
  833.  
  834. void r388add_client(T388* C,T0* a1){
  835. T2 _i=0;
  836. /*[IF*/
  837. if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
  838. {T60*n=malloc(sizeof(*n));
  839. *n=M60;
  840. r60with_capacity(n,4);
  841. C->_actuals_clients=(T0*)n;
  842. }
  843. r60add_last((T60*)((C)->_actuals_clients/*12*/),a1);
  844. }
  845. else{
  846. _i=r60fast_index_of((T60*)((C)->_actuals_clients/*12*/),a1);
  847. /*[IF*/
  848. if((_i)>(((T60*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
  849. r60add_last((T60*)((C)->_actuals_clients/*12*/),a1);
  850. }
  851. /*FI]*/
  852. }
  853. /*FI]*/
  854. r24add_client((T24*)(r388run_class(C)),a1);
  855. }
  856. /*No:RUN_FEATURE_4.ucs_in_computation*/
  857. /*No:RUN_FEATURE_4.C_value_reader*/
  858.  
  859.  
  860. void r388make(T388* C,T0* a1,T0* a2,T0* a3){
  861. C->_current_type=a1;
  862. C->_name=a2;
  863. C->_base_feature=a3;
  864. /*[IRF3.5add_rf*/r325put(((T325*)(((T24*)(r388run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X83to_key(a2));
  865. /*]*/
  866. r22incr_magic_count((T22*)(oBC12small_eiffel));
  867. C->_use_current_state=15;
  868. r22push((T22*)(oBC12small_eiffel),(T0*)C);
  869. r388initialize(C);
  870. r22pop((T22*)(oBC12small_eiffel));
  871. }
  872. /*No:RUN_FEATURE_4.us_to_pointer*/
  873. /*No:RUN_FEATURE_4.routine_body*/
  874. /*No:RUN_FEATURE_4.ucs_true*/
  875. /*No:RUN_FEATURE_4.name*/
  876. T0*oBC388tmp_string=NULL;
  877.  
  878.  
  879. T6 r388attribute_reader(T388* C){
  880. T6 R=0;
  881. T0* _rf2=NULL;
  882. T0* _c0=NULL;
  883. T0* _e=NULL;
  884. _e=r388body_one_result(C);
  885. /*[IF*/
  886. if(((_e)!=((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  887. _c0=_e;
  888. if(NULL!=(_c0))switch(((T0*)_c0)->id) {
  889. case 145: case 139: case 150: case 144: case 143: 
  890. break;
  891. default:
  892. _c0=NULL;
  893. };/*[IF*/
  894. if((_c0)!=((void*)(NULL))){
  895. /*[IF*/
  896. if(X56is_current(/*X141target*/((T0*)(((T145*)_c0))->_target/*4*/))){
  897. _rf2=X141run_feature(_c0);
  898. if(NULL!=(_rf2))switch(((T0*)_rf2)->id) {
  899. case 356: 
  900. break;
  901. default:
  902. _rf2=NULL;
  903. };R=(_rf2)!=((void*)(NULL));
  904. }
  905. /*FI]*/
  906. }
  907. /*FI]*/
  908. }
  909. /*FI]*/
  910. return R;
  911. }
  912. /*No:RUN_FEATURE_4.afd_check*/
  913.  
  914.  
  915. void r388address_of_c_define_wrapper(T388* C,T0* a1){
  916. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  917. /*]*/
  918. /*[IF*/
  919. if(((C)->_result_type/*40*/)==((void*)(NULL))){
  920. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_1776a));
  921. }
  922. else{
  923. X54c_type_for_external_in((C)->_result_type/*40*/,((T0*)ms51_3077376));
  924. }
  925. /*FI]*/
  926. r7extend((T7*)(((T0*)ms51_3077376)),'\40');
  927. r388address_of_wrapper_name_in(C,((T0*)ms51_3077376));
  928. r7extend((T7*)(((T0*)ms51_3077376)),'\50');
  929. X54c_type_for_external_in((C)->_current_type/*4*/,((T0*)ms51_3077376));
  930. r7extend((T7*)(((T0*)ms51_3077376)),'\40');
  931. r7extend((T7*)(((T0*)ms51_3077376)),'C');
  932. /*[IF*/
  933. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  934. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  935. r187external_prototype_in((T187*)((C)->_arguments/*36*/),((T0*)ms51_3077376));
  936. }
  937. /*FI]*/
  938. r7extend((T7*)(((T0*)ms51_3077376)),'\51');
  939. r25put_c_heading((T25*)(oBC12cpp),((T0*)ms51_3077376));
  940. r364define_body_of((T0*)C);
  941. }
  942.  
  943.  
  944. T0* r388clients(T388* C){
  945. T0* R=NULL;
  946. T0* _bfbc=NULL;
  947. T0* _bc=NULL;
  948. /*[IF*/
  949. if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
  950. _bc=X54base_class((C)->_current_type/*4*/);
  951. _bfbc=((T303*)((C)->_base_feature/*32*/))->_base_class/*4*/;
  952. /*[IF*/
  953. if((_bc)==((void*)(_bfbc))){
  954. R=((T303*)((C)->_base_feature/*32*/))->_clients/*20*/;
  955. }
  956. else{
  957. R=r63clients_for(((T63*)_bc),(C)->_name/*16*/);
  958. }
  959. /*FI]*/
  960. C->_clients_memory=R;
  961. }
  962. else{
  963. R=(C)->_clients_memory/*8*/;
  964. }
  965. /*FI]*/
  966. return R;
  967. }
  968.  
  969.  
  970. T6 r388is_empty_or_null_body(T388* C){
  971. T6 R=0;
  972. /*[IF*/
  973. if(r388isa_in_line(C)){
  974. R=((C)->_in_line_status/*60*/)==(1);
  975. }
  976. /*FI]*/
  977. return R;
  978. }
  979.  
  980.  
  981. void r388c_define(T388* C){
  982. /*[IF*/
  983. if(r388isa_in_line(C)){
  984. r25incr_inlined_function_count((T25*)(oBC12cpp));
  985. r388nothing_comment(C);
  986. }
  987. else{
  988. /*[IF*/
  989. if(r388use_current(C)){
  990. r25incr_function_count((T25*)(oBC12cpp));
  991. }
  992. else{
  993. r25incr_real_function_count((T25*)(oBC12cpp));
  994. }
  995. /*FI]*/
  996. r388define_prototype(C);
  997. r388c_define_opening(C);
  998. /*[IF*/
  999. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  1000. r216compile_to_c((T216*)((C)->_routine_body/*48*/));
  1001. }
  1002. /*FI]*/
  1003. r388c_define_closing(C);
  1004. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_8364));
  1005. /*]*/
  1006. r388c_frame_descriptor(C);
  1007. }
  1008. /*FI]*/
  1009. }
  1010.  
  1011.  
  1012. void r388once_result_in(T388* C,T0* a1){
  1013. r7extend(((T7*)a1),'o');
  1014. r303mapping_c_name_in((T303*)((C)->_base_feature/*32*/),a1);
  1015. }
  1016.  
  1017.  
  1018. void r388fall_down(T388* C){
  1019. T0* _rf=NULL;
  1020. T0* _sub_name=NULL;
  1021. T0* _sub_bc=NULL;
  1022. T0* _current_bc=NULL;
  1023. T0* _sub_rc=NULL;
  1024. T0* _current_rc=NULL;
  1025. T2 _i=0;
  1026. T0* _running=NULL;
  1027. _current_rc=X54run_class((C)->_current_type/*4*/);
  1028. _running=(((T24*)_current_rc))->_running/*12*/;
  1029. /*[IF*/
  1030. if((_running)!=((void*)(NULL))){
  1031. _current_bc=X54base_class((C)->_current_type/*4*/);
  1032. _i=(((T328*)_running))->_lower/*12*/;
  1033. while (!((_i)>((((T328*)_running))->_upper/*8*/))) {
  1034. _sub_rc=r328item(((T328*)_running),_i);
  1035. /*[IF*/
  1036. if((_sub_rc)!=((void*)(_current_rc))){
  1037. _sub_bc=X54base_class((((T24*)_sub_rc))->_current_type/*0*/);
  1038. _sub_name=r63new_name_of(((T63*)_sub_bc),_current_bc,(C)->_name/*16*/);
  1039. _rf=r24get_feature(((T24*)_sub_rc),_sub_name);
  1040. }
  1041. /*FI]*/
  1042. _i=(_i)+(1);
  1043. }
  1044. }
  1045. /*FI]*/
  1046. }
  1047. /*No:RUN_FEATURE_4.rescue_compound*/
  1048. /*No:RUN_FEATURE_4.actuals_clients*/
  1049. /*No:RUN_FEATURE_4.us_result*/
  1050.  
  1051.  
  1052. T6 r388result_is_current(T388* C){
  1053. T6 R=0;
  1054. T0* _e=NULL;
  1055. _e=r388body_one_result(C);
  1056. /*[IF*/
  1057. if(((_e)!=((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  1058. R=X56is_current(_e);
  1059. }
  1060. /*FI]*/
  1061. return R;
  1062. }
  1063.  
  1064.  
  1065. void r388define_prototype(T388* C){
  1066. T6 _no_check=0;
  1067. T2 _mem_id=0;
  1068. _no_check=r43no_check((T43*)(oBC12run_control));
  1069. /*[IF*/
  1070. if(r43no_check((T43*)(oBC12run_control))){
  1071. /*[IRF3.3reset*/((((T204*)((T204*)(oBC12c_frame_descriptor_local_count))))->_value)=(0);
  1072. /*]*/
  1073. /*[IRF3.3clear*/((((T7*)((T7*)(oBC12c_frame_descriptor_format))))->_count)=(0);
  1074. /*]*/
  1075. r7extend((T7*)(oBC12c_frame_descriptor_format),'\42');
  1076. /*[IRF3.3clear*/((((T7*)((T7*)(oBC12c_frame_descriptor_locals))))->_count)=(0);
  1077. /*]*/
  1078. }
  1079. /*FI]*/
  1080. _mem_id=r388id(C);
  1081. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  1082. /*]*/
  1083. /*[IF*/
  1084. if(((C)->_result_type/*40*/)==((void*)(NULL))){
  1085. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_1776a));
  1086. }
  1087. else{
  1088. X54c_type_for_result_in(X54run_type((C)->_result_type/*40*/),((T0*)ms51_3077376));
  1089. }
  1090. /*FI]*/
  1091. r7extend((T7*)(((T0*)ms51_3077376)),'\40');
  1092. r7extend((T7*)(((T0*)ms51_3077376)),'r');
  1093. r2append_in(_mem_id,((T0*)ms51_3077376));
  1094. X83mapping_c_in((C)->_name/*16*/,((T0*)ms51_3077376));
  1095. r7extend((T7*)(((T0*)ms51_3077376)),'\50');
  1096. /*[IF*/
  1097. if(_no_check){
  1098. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_56460));
  1099. /*[IF*/
  1100. if((r388use_current(C))||(((C)->_arguments/*36*/)!=((void*)(NULL)))){
  1101. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1102. }
  1103. /*FI]*/
  1104. }
  1105. /*FI]*/
  1106. /*[IF*/
  1107. if(r388use_current(C)){
  1108. X54c_type_for_target_in((C)->_current_type/*4*/,((T0*)ms51_3077376));
  1109. r7extend((T7*)(((T0*)ms51_3077376)),'\40');
  1110. r7extend((T7*)(((T0*)ms51_3077376)),'C');
  1111. X54c_frame_descriptor((C)->_current_type/*4*/);
  1112. /*[IF*/
  1113. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1114. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1115. }
  1116. /*FI]*/
  1117. }
  1118. /*FI]*/
  1119. /*[IF*/
  1120. if(((C)->_arguments/*36*/)==((void*)(NULL))){
  1121. /*[IF*/
  1122. if(_no_check){
  1123. }
  1124.  else if(!(r388use_current(C))){
  1125. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_1776a));
  1126. }
  1127. /*FI]*/
  1128. }
  1129. else{
  1130. r187compile_to_c_in((T187*)((C)->_arguments/*36*/),((T0*)ms51_3077376));
  1131. }
  1132. /*FI]*/
  1133. r7extend((T7*)(((T0*)ms51_3077376)),'\51');
  1134. r25put_c_heading((T25*)(oBC12cpp),((T0*)ms51_3077376));
  1135. /*[IRF3.3swap_on_c*/((((T25*)((T25*)(oBC12cpp))))->_current_out)=(oBC25out_c);
  1136. /*]*/
  1137. }
  1138.  
  1139.  
  1140. void r388put_tag(T388* C){
  1141. T0* _fn=NULL;
  1142. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1143. T3 b1='\42';
  1144. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1145. }/*]*/
  1146. /*]*/
  1147. _fn=/*(IRF4.6first_name*/r85item(((T85*)(((T303*)((C)->_base_feature/*32*/))->_names/*8*/)),1)/*)*/;
  1148. X83put_cpp_tag(_fn);
  1149. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X83to_string(_fn));
  1150. /*]*/
  1151. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_1148));
  1152. /*]*/
  1153. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T64*)(/*(IRF4.6base_class_name*/(((T63*)(((T303*)((C)->_base_feature/*32*/))->_base_class/*4*/)))->_name/*24*//*)*/))->_to_string/*0*/);
  1154. /*]*/
  1155. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1156. T3 b1='\42';
  1157. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1158. }/*]*/
  1159. /*]*/
  1160. }
  1161. /*No:RUN_FEATURE_4.c_code*/
  1162.  
  1163.  
  1164. T6 r388a_eq_neq(T388* C){
  1165. T6 R=0;
  1166. T0* _e=NULL;
  1167. T0* _rf=NULL;
  1168. T0* _c=NULL;
  1169. _c=r388body_one_result_dca(C);
  1170. /*[IF*/
  1171. if(((_c)!=((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  1172. _rf=X117run_feature(_c);
  1173. /*[IF*/
  1174. if(((_rf)==((void*)(NULL)))&&((X117arg_count(_c))==(1))){
  1175. _e=X149expression(X117arguments(_c),1);
  1176. {int z1=X56isa_dca_inline_argument(_e);
  1177.  
  1178. if((0==z1)){
  1179. }
  1180.  else 
  1181. if((-1==z1)){
  1182. R=(r388arg_count(C))==(0);
  1183. }
  1184.  else{R=(r388arg_count(C))==(1);
  1185. }}
  1186. }
  1187. /*FI]*/
  1188. }
  1189. /*FI]*/
  1190. return R;
  1191. }
  1192. /*No:RUN_FEATURE_4.C_dc_pco2*/
  1193. /*No:RUN_FEATURE_4.fz_00*/
  1194.  
  1195.  
  1196. void r388c_initialize_ds_one_by_one(T388* C){
  1197. r7copy((T7*)(((T0*)ms51_3077376)),((T0*)ms51_37325));
  1198. r388c_frame_descriptor_name_in(C,((T0*)ms51_3077376));
  1199. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_144));
  1200. /*[IF*/
  1201. if(r388use_current(C)){
  1202. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_18550));
  1203. }
  1204. else{
  1205. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_11254));
  1206. }
  1207. /*FI]*/
  1208. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  1209. /*]*/
  1210. r25put_position_in_ds(r388start_position(C));
  1211. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_11736));
  1212. /*]*/
  1213. /*[IF*/
  1214. if((((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)>(0)){
  1215. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_12150));
  1216. /*]*/
  1217. }
  1218. /*FI]*/
  1219. }
  1220. /*No:RUN_FEATURE_4.ucs_not_computed*/
  1221. /*No:RUN_FEATURE_4.is_pre_computable*/
  1222.  
  1223.  
  1224. void r388collect_c_tmp(T388* C){
  1225. /*[IF*/
  1226. if(X54is_user_expanded((C)->_result_type/*40*/)){
  1227. /*[IF*/
  1228. if(X54is_dummy_expanded((C)->_result_type/*40*/)){
  1229. }
  1230.  else if(r388isa_in_line(C)){
  1231. }
  1232. else{
  1233. r25se_tmp_add((T0*)C);
  1234. }
  1235. /*FI]*/
  1236. }
  1237. /*FI]*/
  1238. }
  1239. /*No:RUN_FEATURE_4.fz_13*/
  1240.  
  1241.  
  1242. void r388c_frame_descriptor(T388* C){
  1243. /*[IF*/
  1244. if(r43no_check((T43*)(oBC12run_control))){
  1245. r7copy((T7*)(((T0*)ms51_3077376)),((T0*)ms51_23640));
  1246. r388c_frame_descriptor_name_in(C,((T0*)ms51_3077376));
  1247. r25put_extern7((T25*)(oBC12cpp),((T0*)ms51_3077376));
  1248. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1249. T3 b1='\173';
  1250. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1251. }/*]*/
  1252. /*]*/
  1253. r388put_tag(C);
  1254. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  1255. /*]*/
  1256. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1257. /*[IF*/
  1258. if(r388use_current(C)){
  1259. r7extend((T7*)(((T0*)ms51_3077376)),'1');
  1260. }
  1261. else{
  1262. r7extend((T7*)(((T0*)ms51_3077376)),'0');
  1263. }
  1264. /*FI]*/
  1265. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1266. /*[IRF3.5append_in*/r2append_in(((T2)(((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)),((T0*)ms51_3077376));
  1267. /*]*/
  1268. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1269. r7append((T7*)(((T0*)ms51_3077376)),oBC12c_frame_descriptor_format);
  1270. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_2316));
  1271. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  1272. /*]*/
  1273. }
  1274. /*FI]*/
  1275. }
  1276. /*No:RUN_FEATURE_4.C_a_eq_neq*/
  1277. /*No:RUN_FEATURE_4.fz_15*/
  1278.  
  1279.  
  1280. void r388in_line(T388* C){
  1281. T6 _exp_to_ref_flag=0;
  1282. T0* _cien=NULL;
  1283. T0* _rf=NULL;
  1284. T0* _c=NULL;
  1285. T6 _flag=0;
  1286. T0* _e=NULL;
  1287. T0* _a=NULL;
  1288. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms388_5336));
  1289. /*]*/
  1290. /*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),(C)->_in_line_status/*60*/);
  1291. /*]*/
  1292. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X83to_string((C)->_name/*16*/));
  1293. /*]*/
  1294. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_184));
  1295. /*]*/
  1296. {int z1=(C)->_in_line_status/*60*/;
  1297.  
  1298. if((1==z1)){
  1299. _flag=r25cannot_drop_all((T25*)(oBC12cpp));
  1300. /*[IF*/
  1301. if(_flag){
  1302. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1303. T3 b1='\54';
  1304. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1305. }/*]*/
  1306. /*]*/
  1307. }
  1308. /*FI]*/
  1309. X54c_initialize(X54run_type((C)->_result_type/*40*/));
  1310. /*[IF*/
  1311. if(_flag){
  1312. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1313. T3 b1='\51';
  1314. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1315. }/*]*/
  1316. /*]*/
  1317. }
  1318. /*FI]*/
  1319. }
  1320.  else 
  1321. if((2==z1)){
  1322. _flag=r25cannot_drop_all((T25*)(oBC12cpp));
  1323. /*[IF*/
  1324. if(_flag){
  1325. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1326. T3 b1='\54';
  1327. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1328. }/*]*/
  1329. /*]*/
  1330. }
  1331. /*FI]*/
  1332. _a=/*(IRF4.3first*/((T216*)((C)->_routine_body/*48*/))->_first_one/*8*//*)*/;
  1333. if(NULL!=(_a))switch(((T0*)_a)->id) {
  1334. case 282: 
  1335. break;
  1336. default:
  1337. _a=NULL;
  1338. };_e=(((T282*)_a))->_right_side/*8*/;
  1339. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1340. T3 b1='\50';
  1341. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1342. }/*]*/
  1343. /*]*/
  1344. X56compile_to_c(_e);
  1345. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1346. T3 b1='\51';
  1347. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1348. }/*]*/
  1349. /*]*/
  1350. /*[IF*/
  1351. if(_flag){
  1352. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1353. T3 b1='\51';
  1354. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1355. }/*]*/
  1356. /*]*/
  1357. }
  1358. /*FI]*/
  1359. }
  1360.  else 
  1361. if((3==z1)){
  1362. _flag=r25arguments_cannot_be_dropped((T25*)(oBC12cpp));
  1363. /*[IF*/
  1364. if(_flag){
  1365. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1366. T3 b1='\54';
  1367. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1368. }/*]*/
  1369. /*]*/
  1370. }
  1371. /*FI]*/
  1372. _a=/*(IRF4.3first*/((T216*)((C)->_routine_body/*48*/))->_first_one/*8*//*)*/;
  1373. if(NULL!=(_a))switch(((T0*)_a)->id) {
  1374. case 282: 
  1375. break;
  1376. default:
  1377. _a=NULL;
  1378. };_c=(((T282*)_a))->_right_side/*8*/;
  1379. if(NULL!=(_c))switch(((T0*)_c)->id) {
  1380. case 132: case 119: case 113: case 145: case 121: case 123: case 130: case 122: case 120: case 153: case 137: case 139: case 133: case 124: case 126: case 135: case 194: case 152: case 150: case 134: case 125: case 127: case 128: case 136: case 144: case 131: case 143: 
  1381. break;
  1382. default:
  1383. _c=NULL;
  1384. };_rf=X117run_feature(_c);
  1385. /*[IF*/
  1386. if((X54is_expanded(X51result_type(_rf)))&&(X54is_reference((C)->_result_type/*40*/))){
  1387. _exp_to_ref_flag=1;
  1388. X54to_reference(X51result_type(_rf));
  1389. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1390. T3 b1='\50';
  1391. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1392. }/*]*/
  1393. /*]*/
  1394. }
  1395. /*FI]*/
  1396. X51mapping_c(_rf);
  1397. /*[IF*/
  1398. if(_exp_to_ref_flag){
  1399. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1400. T3 b1='\51';
  1401. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1402. }/*]*/
  1403. /*]*/
  1404. }
  1405. /*FI]*/
  1406. /*[IF*/
  1407. if(_flag){
  1408. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1409. T3 b1='\51';
  1410. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1411. }/*]*/
  1412. /*]*/
  1413. }
  1414. /*FI]*/
  1415. }
  1416.  else 
  1417. if((4==z1)){
  1418. _flag=r25arguments_cannot_be_dropped((T25*)(oBC12cpp));
  1419. /*[IF*/
  1420. if(_flag){
  1421. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1422. T3 b1='\54';
  1423. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1424. }/*]*/
  1425. /*]*/
  1426. }
  1427. /*FI]*/
  1428. /*[IRF3.3clear*/((((T7*)((T7*)(oBC388tmp_string))))->_count)=(0);
  1429. /*]*/
  1430. r7extend((T7*)(oBC388tmp_string),'\50');
  1431. r7extend((T7*)(oBC388tmp_string),'\50');
  1432. X54c_type_for_result_in(X54run_type((C)->_result_type/*40*/),oBC388tmp_string);
  1433. r7extend((T7*)(oBC388tmp_string),'\51');
  1434. r7extend((T7*)(oBC388tmp_string),'\50');
  1435. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),oBC388tmp_string);
  1436. /*]*/
  1437. r25put_target_as_value((T25*)(oBC12cpp));
  1438. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_170));
  1439. /*]*/
  1440. /*[IF*/
  1441. if(_flag){
  1442. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1443. T3 b1='\51';
  1444. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1445. }/*]*/
  1446. /*]*/
  1447. }
  1448. /*FI]*/
  1449. }
  1450.  else 
  1451. if((5==z1)){
  1452. _a=/*(IRF4.3first*/((T216*)((C)->_routine_body/*48*/))->_first_one/*8*//*)*/;
  1453. if(NULL!=(_a))switch(((T0*)_a)->id) {
  1454. case 282: 
  1455. break;
  1456. default:
  1457. _a=NULL;
  1458. };_c=(((T282*)_a))->_right_side/*8*/;
  1459. if(NULL!=(_c))switch(((T0*)_c)->id) {
  1460. case 132: case 119: case 113: case 145: case 121: case 123: case 130: case 122: case 120: case 153: case 137: case 139: case 133: case 124: case 126: case 135: case 194: case 152: case 150: case 134: case 125: case 127: case 128: case 136: case 144: case 131: case 143: 
  1461. break;
  1462. default:
  1463. _c=NULL;
  1464. };_rf=X117run_feature(_c);
  1465. r25push_same_target((T25*)(oBC12cpp),_rf,X117arguments(_c));
  1466. X51mapping_c(_rf);
  1467. r25pop((T25*)(oBC12cpp));
  1468. }
  1469.  else 
  1470. if((6==z1)){
  1471. _a=/*(IRF4.3first*/((T216*)((C)->_routine_body/*48*/))->_first_one/*8*//*)*/;
  1472. if(NULL!=(_a))switch(((T0*)_a)->id) {
  1473. case 282: 
  1474. break;
  1475. default:
  1476. _a=NULL;
  1477. };_c=(((T282*)_a))->_right_side/*8*/;
  1478. if(NULL!=(_c))switch(((T0*)_c)->id) {
  1479. case 132: case 119: case 113: case 145: case 121: case 123: case 130: case 122: case 120: case 153: case 137: case 139: case 133: case 124: case 126: case 135: case 194: case 152: case 150: case 134: case 125: case 127: case 128: case 136: case 144: case 131: case 143: 
  1480. break;
  1481. default:
  1482. _c=NULL;
  1483. };X117finalize(_c);
  1484. r25push_inline_dca((T25*)(oBC12cpp),(T0*)C,_c);
  1485. X51mapping_c(X117run_feature(_c));
  1486. r25pop((T25*)(oBC12cpp));
  1487. }
  1488.  else 
  1489. if((7==z1)){
  1490. _a=/*(IRF4.3first*/((T216*)((C)->_routine_body/*48*/))->_first_one/*8*//*)*/;
  1491. if(NULL!=(_a))switch(((T0*)_a)->id) {
  1492. case 282: 
  1493. break;
  1494. default:
  1495. _a=NULL;
  1496. };_cien=(((T282*)_a))->_right_side/*8*/;
  1497. if(NULL!=(_cien))switch(((T0*)_cien)->id) {
  1498. case 130: case 128: 
  1499. break;
  1500. default:
  1501. _cien=NULL;
  1502. };r25push_inline_dca((T25*)(oBC12cpp),(T0*)C,_cien);
  1503. X129dca_inline(_cien,X56result_type(X129arg1(_cien)));
  1504. r25pop((T25*)(oBC12cpp));
  1505. }
  1506.  else 
  1507. if(((8<=z1)&&(z1<=9))){
  1508. _flag=r25target_cannot_be_dropped((T25*)(oBC12cpp));
  1509. /*[IF*/
  1510. if(_flag){
  1511. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1512. T3 b1='\54';
  1513. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1514. }/*]*/
  1515. /*]*/
  1516. }
  1517. /*FI]*/
  1518. _a=/*(IRF4.3first*/((T216*)((C)->_routine_body/*48*/))->_first_one/*8*//*)*/;
  1519. if(NULL!=(_a))switch(((T0*)_a)->id) {
  1520. case 282: 
  1521. break;
  1522. default:
  1523. _a=NULL;
  1524. };_c=(((T282*)_a))->_right_side/*8*/;
  1525. if(NULL!=(_c))switch(((T0*)_c)->id) {
  1526. case 132: case 119: case 113: case 145: case 121: case 123: case 130: case 122: case 120: case 153: case 137: case 139: case 133: case 124: case 126: case 135: case 194: case 152: case 150: case 134: case 125: case 127: case 128: case 136: case 144: case 131: case 143: 
  1527. break;
  1528. default:
  1529. _c=NULL;
  1530. };_rf=X117run_feature(_c);
  1531. r25push_direct((T25*)(oBC12cpp),_rf,/*X117target*/((T0*)(((T132*)_c))->_target/*4*/),X117arguments(_c));
  1532. X51mapping_c(_rf);
  1533. r25pop((T25*)(oBC12cpp));
  1534. /*[IF*/
  1535. if(_flag){
  1536. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1537. T3 b1='\51';
  1538. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1539. }/*]*/
  1540. /*]*/
  1541. }
  1542. /*FI]*/
  1543. }
  1544.  else {_a=/*(IRF4.3first*/((T216*)((C)->_routine_body/*48*/))->_first_one/*8*//*)*/;
  1545. if(NULL!=(_a))switch(((T0*)_a)->id) {
  1546. case 282: 
  1547. break;
  1548. default:
  1549. _a=NULL;
  1550. };_c=(((T282*)_a))->_right_side/*8*/;
  1551. if(NULL!=(_c))switch(((T0*)_c)->id) {
  1552. case 132: case 119: case 113: case 145: case 121: case 123: case 130: case 122: case 120: case 153: case 137: case 139: case 133: case 124: case 126: case 135: case 194: case 152: case 150: case 134: case 125: case 127: case 128: case 136: case 144: case 131: case 143: 
  1553. break;
  1554. default:
  1555. _c=NULL;
  1556. };_rf=X117run_feature(_c);
  1557. r25push_same_target((T25*)(oBC12cpp),_rf,X117arguments(_c));
  1558. X51mapping_c(_rf);
  1559. r25pop((T25*)(oBC12cpp));
  1560. }}
  1561. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms388_1170));
  1562. /*]*/
  1563. }
  1564.  
  1565.  
  1566. T2 r388arg_count(T388* C){
  1567. T2 R=0;
  1568. /*[IF*/
  1569. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1570. R=/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*36*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
  1571. }
  1572. /*FI]*/
  1573. return R;
  1574. }
  1575.  
  1576.  
  1577. T6 r388dc_pco1(T388* C){
  1578. T6 R=0;
  1579. T0* _rf6=NULL;
  1580. T0* _c=NULL;
  1581. _c=r388body_one_dc_pco(C);
  1582. /*[IF*/
  1583. if(((_c)!=((void*)(NULL)))&&(X56is_current(/*X117target*/((T0*)(((T132*)_c))->_target/*4*/)))){
  1584. _rf6=X117run_feature(_c);
  1585. if(NULL!=(_rf6))switch(((T0*)_rf6)->id) {
  1586. case 50: 
  1587. break;
  1588. default:
  1589. _rf6=NULL;
  1590. };/*[IF*/
  1591. if((_rf6)!=((void*)(NULL))){
  1592. R=!(r50use_current(((T50*)_rf6)));
  1593. }
  1594. /*FI]*/
  1595. }
  1596. /*FI]*/
  1597. return R;
  1598. }
  1599.  
  1600.  
  1601. void r388address_of_c_mapping(T388* C){
  1602. /*[IF*/
  1603. if(r43boost((T43*)(oBC12run_control))){
  1604. /*[IF*/
  1605. if(r388isa_in_line(C)){
  1606. r388address_of_c_mapping_wrapper(C);
  1607. }
  1608.  else if(r388use_current(C)){
  1609. r388mapping_name(C);
  1610. }
  1611. else{
  1612. r388address_of_c_mapping_wrapper(C);
  1613. }
  1614. /*FI]*/
  1615. }
  1616. else{
  1617. r388address_of_c_mapping_wrapper(C);
  1618. }
  1619. /*FI]*/
  1620. }
  1621.  
  1622.  
  1623. void r388mapping_c(T388* C){
  1624. T2 _tmp_expanded_idx=0;
  1625. /*[IF*/
  1626. if(r388isa_in_line(C)){
  1627. r388in_line(C);
  1628. }
  1629. else{
  1630. _tmp_expanded_idx=r25se_tmp_open((T0*)C);
  1631. r388default_mapping_function(C);
  1632. /*[IF*/
  1633. if((_tmp_expanded_idx)>=(0)){
  1634. r25se_tmp_close(_tmp_expanded_idx);
  1635. }
  1636. /*FI]*/
  1637. }
  1638. /*FI]*/
  1639. }
  1640.  
  1641.  
  1642. T6 r388can_be_dropped(T388* C){
  1643. T6 R=0;
  1644. R=((((((C)->_arguments/*36*/)==((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL))))&&(((C)->_require_assertion/*20*/)==((void*)(NULL))))&&(((C)->_ensure_assertion/*24*/)==((void*)(NULL))))&&(((C)->_rescue_compound/*52*/)==((void*)(NULL)));
  1645. /*[IF*/
  1646. if(R){
  1647. /*[IF*/
  1648. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  1649. R=0;
  1650. }
  1651. /*FI]*/
  1652. }
  1653. /*FI]*/
  1654. return R;
  1655. }
  1656.  
  1657.  
  1658. void r388initialize(T388* C){
  1659. C->_arguments=((T303*)((C)->_base_feature/*32*/))->_arguments/*24*/;
  1660. C->_result_type=((T303*)((C)->_base_feature/*32*/))->_result_type/*56*/;
  1661. /*[IF*/
  1662. if(X54is_like_argument((C)->_result_type/*40*/)){
  1663. /*[IF*/
  1664. if(!(r187is_runnable((T187*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
  1665. {T187*n=malloc(sizeof(*n));
  1666. *n=M187;
  1667. r187with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
  1668. C->_arguments=(T0*)n;
  1669. }
  1670. }
  1671. /*FI]*/
  1672. C->_result_type=X54to_runnable((C)->_result_type/*40*/,(C)->_current_type/*4*/);
  1673. }
  1674. else{
  1675. C->_result_type=X54to_runnable((C)->_result_type/*40*/,(C)->_current_type/*4*/);
  1676. /*[IF*/
  1677. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1678. /*[IF*/
  1679. if(!(r187is_runnable((T187*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
  1680. {T187*n=malloc(sizeof(*n));
  1681. *n=M187;
  1682. r187with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
  1683. C->_arguments=(T0*)n;
  1684. }
  1685. }
  1686. /*FI]*/
  1687. }
  1688. /*FI]*/
  1689. }
  1690. /*FI]*/
  1691. C->_local_vars=((T303*)((C)->_base_feature/*32*/))->_local_vars/*16*/;
  1692. /*[IF*/
  1693. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  1694. C->_local_vars=r178to_runnable((T178*)((C)->_local_vars/*44*/),(C)->_current_type/*4*/);
  1695. }
  1696. /*FI]*/
  1697. C->_routine_body=((T303*)((C)->_base_feature/*32*/))->_routine_body/*44*/;
  1698. /*[IF*/
  1699. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  1700. C->_routine_body=r216to_runnable((T216*)((C)->_routine_body/*48*/),(C)->_current_type/*4*/);
  1701. }
  1702. /*FI]*/
  1703. /*[IF*/
  1704. if(r43require_check((T43*)(oBC12run_control))){
  1705. C->_require_assertion=r303run_require((T0*)C);
  1706. }
  1707. /*FI]*/
  1708. /*[IF*/
  1709. if(r43ensure_check((T43*)(oBC12run_control))){
  1710. C->_ensure_assertion=r303run_ensure((T0*)C);
  1711. }
  1712. /*FI]*/
  1713. C->_rescue_compound=((T303*)((C)->_base_feature/*32*/))->_rescue_compound/*48*/;
  1714. /*[IF*/
  1715. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  1716. /*[IRF3.3set_used*/((((T363*)((T363*)(oBC12exceptions_handler))))->_used)=(1);
  1717. /*]*/
  1718. C->_rescue_compound=r216to_runnable((T216*)((C)->_rescue_compound/*52*/),(C)->_current_type/*4*/);
  1719. }
  1720. /*FI]*/
  1721. }
  1722. /*No:RUN_FEATURE_4.require_assertion*/
  1723.  
  1724.  
  1725. T6 r388dc_pco2(T388* C){
  1726. T6 R=0;
  1727. T0* _rf6=NULL;
  1728. T0* _c2=NULL;
  1729. T0* _c1=NULL;
  1730. _c1=r388body_one_dc_pco(C);
  1731. /*[IF*/
  1732. if((_c1)!=((void*)(NULL))){
  1733. _c2=/*X117target*/((T0*)(((T132*)_c1))->_target/*4*/);
  1734. if(NULL!=(_c2))switch(((T0*)_c2)->id) {
  1735. case 132: case 119: case 113: case 145: case 121: case 123: case 130: case 122: case 120: case 153: case 137: case 139: case 133: case 124: case 126: case 135: case 194: case 152: case 150: case 134: case 125: case 127: case 128: case 136: case 144: case 131: case 143: 
  1736. break;
  1737. default:
  1738. _c2=NULL;
  1739. };/*[IF*/
  1740. if((_c2)!=((void*)(NULL))){
  1741. _rf6=X117run_feature(_c2);
  1742. if(NULL!=(_rf6))switch(((T0*)_rf6)->id) {
  1743. case 50: 
  1744. break;
  1745. default:
  1746. _rf6=NULL;
  1747. };/*[IF*/
  1748. if((((_rf6)!=((void*)(NULL)))&&(!(r50use_current(((T50*)_rf6)))))&&(X56is_current(/*X117target*/((T0*)(((T132*)_c2))->_target/*4*/)))){
  1749. R=1;
  1750. }
  1751. /*FI]*/
  1752. }
  1753. /*FI]*/
  1754. }
  1755. /*FI]*/
  1756. return R;
  1757. }
  1758.  
  1759.  
  1760. void r388nothing_comment(T388* C){
  1761. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_184a));
  1762. /*]*/
  1763. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_759));
  1764. /*]*/
  1765. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X54run_time_mark((C)->_current_type/*4*/));
  1766. /*]*/
  1767. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1768. T3 b1='\56';
  1769. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1770. }/*]*/
  1771. /*]*/
  1772. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X83to_string((C)->_name/*16*/));
  1773. /*]*/
  1774. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_184));
  1775. /*]*/
  1776. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1777. T3 b1='\n';
  1778. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1779. }/*]*/
  1780. /*]*/
  1781. }
  1782. /*No:RUN_FEATURE_4.C_attribute_reader*/
  1783.  
  1784.  
  1785. void r388compute_use_current(T388* C){
  1786. T0* _ct=NULL;
  1787. _ct=(C)->_current_type/*4*/;
  1788. /*[IF*/
  1789. if(X54is_reference(_ct)){
  1790. /*[IF*/
  1791. if(r43no_check((T43*)(oBC12run_control))){
  1792. C->_use_current_state=14;
  1793. }
  1794. else{
  1795. r388std_compute_use_current(C);
  1796. }
  1797. /*FI]*/
  1798. }
  1799. else{
  1800. r388std_compute_use_current(C);
  1801. }
  1802. /*FI]*/
  1803. }
  1804.  
  1805.  
  1806. T0* r388body_one_result_dca(T388* C){
  1807. T0* R=NULL;
  1808. T0* _bf=NULL;
  1809. T0* _r=NULL;
  1810. T0* _rf=NULL;
  1811. T0* _writable_attribute=NULL;
  1812. T0* _c0c=NULL;
  1813. T0* _c=NULL;
  1814. _c=r388body_one_result(C);
  1815. if(NULL!=(_c))switch(((T0*)_c)->id) {
  1816. case 132: case 119: case 113: case 145: case 121: case 123: case 130: case 122: case 120: case 153: case 137: case 139: case 133: case 124: case 126: case 135: case 194: case 152: case 150: case 134: case 125: case 127: case 128: case 136: case 144: case 131: case 143: 
  1817. break;
  1818. default:
  1819. _c=NULL;
  1820. };/*[IF*/
  1821. if((_c)!=((void*)(NULL))){
  1822. _c0c=/*X117target*/((T0*)(((T132*)_c))->_target/*4*/);
  1823. if(NULL!=(_c0c))switch(((T0*)_c0c)->id) {
  1824. case 150: 
  1825. break;
  1826. default:
  1827. _c0c=NULL;
  1828. };/*[IF*/
  1829. if((_c0c)!=((void*)(NULL))){
  1830. /*[IF*/
  1831. if(X56is_current((((T150*)_c0c))->_target/*4*/)){
  1832. _writable_attribute=(((T150*)_c0c))->_run_feature/*12*/;
  1833. if(NULL!=(_writable_attribute))switch(((T0*)_writable_attribute)->id) {
  1834. case 356: 
  1835. break;
  1836. default:
  1837. _writable_attribute=NULL;
  1838. };/*[IF*/
  1839. if((_writable_attribute)!=((void*)(NULL))){
  1840. _r=((T24*)(r356run_class(((T356*)_writable_attribute))))->_running/*12*/;
  1841. _rf=X117run_feature(_c);
  1842. /*[IF*/
  1843. if((_rf)==((void*)(NULL))){
  1844. R=_c;
  1845. }
  1846.  else if(((_r)!=((void*)(NULL)))&&((r328count(((T328*)_r)))==(1))){
  1847. _r=((T24*)(X51run_class(_rf)))->_running/*12*/;
  1848. /*[IF*/
  1849. if(((_r)!=((void*)(NULL)))&&((r328count(((T328*)_r)))==(1))){
  1850. _bf=(((T356*)_writable_attribute))->_base_feature/*24*/;
  1851. /*[IF*/
  1852. if(!((((T314*)_bf))->_isa_redefinition/*24*/)){
  1853. R=_c;
  1854. }
  1855. /*FI]*/
  1856. }
  1857. /*FI]*/
  1858. }
  1859. /*FI]*/
  1860. }
  1861. /*FI]*/
  1862. }
  1863. /*FI]*/
  1864. }
  1865. /*FI]*/
  1866. }
  1867. /*FI]*/
  1868. return R;
  1869. }
  1870. /*No:RUN_FEATURE_4.local_vars*/
  1871. /*No:RUN_FEATURE_4.fz_open_c_comment*/
  1872.  
  1873.  
  1874. void r388c_frame_descriptor_name_in(T388* C,T0* a1){
  1875. r7extend(((T7*)a1),'f');
  1876. r2append_in(r388id(C),a1);
  1877. X83mapping_c_in((C)->_name/*16*/,a1);
  1878. }
  1879. /*No:CST_ATT_REAL.base_class*/
  1880. /*No:CST_ATT_REAL.value_mem*/
  1881.  
  1882.  
  1883. T0* r211start_position(T211* C){
  1884. T0* R=NULL;
  1885. R=X83start_position(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/);
  1886. return R;
  1887. }
  1888.  
  1889.  
  1890. T6 r211is_merge_with(T211* C,T0* a1,T0* a2){
  1891. T6 R=0;
  1892. R=1;
  1893. /*[IF*/
  1894. if(((C)->_result_type/*20*/)!=((void*)(X93result_type(a1)))){
  1895. /*[IF*/
  1896. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X93result_type(a1))==((void*)(NULL)))){
  1897. R=0;
  1898. }
  1899. /*FI]*/
  1900. }
  1901. /*FI]*/
  1902. /*[IF*/
  1903. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X93arguments(a1)))){
  1904. /*[IF*/
  1905. {/*AT*/R=0;
  1906. }
  1907. /*FI]*/
  1908. }
  1909. /*FI]*/
  1910. /*[IF*/
  1911. if(R){
  1912. /*[IF*/
  1913. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  1914. R=X54is_a_in((C)->_result_type/*20*/,X93result_type(a1),a2);
  1915. }
  1916. /*FI]*/
  1917. /*[IF*/
  1918. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  1919. R=r187is_a_in((T187*)(/*(IRF4.1arguments*/NULL/*)*/),X93arguments(a1),a2);
  1920. }
  1921. /*FI]*/
  1922. /*[IF*/
  1923. if(!(R)){
  1924. R=1;
  1925. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  1926. /*]*/
  1927. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  1928. /*]*/
  1929. /*]*/
  1930. /*[IF*/
  1931. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  1932. R=X54is_a_in(X93result_type(a1),(C)->_result_type/*20*/,a2);
  1933. }
  1934. /*FI]*/
  1935. /*[IF*/
  1936. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  1937. R=r187is_a_in((T187*)(X93arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
  1938. }
  1939. /*FI]*/
  1940. }
  1941. /*FI]*/
  1942. }
  1943. /*FI]*/
  1944. /*[IF*/
  1945. if(R){
  1946. r211merge_header_comments(C,a1);
  1947. }
  1948. /*FI]*/
  1949. return R;
  1950. }
  1951. /*No:CST_ATT_REAL.first_name*/
  1952. /*No:CST_ATT_REAL.em1*/
  1953. /*No:CST_ATT_REAL.header_comment*/
  1954. /*No:CST_ATT_REAL.names*/
  1955. /*No:CST_ATT_REAL.result_type*/
  1956. /*No:CST_ATT_REAL.code_require*/
  1957. /*No:CST_ATT_REAL.make_e_feature*/
  1958.  
  1959.  
  1960. void r211add_into(T211* C,T0* a1){
  1961. T0* _fn=NULL;
  1962. T2 _i=0;
  1963. C->_base_class=r70base_class((T70*)(X83start_position(r85item((T85*)((C)->_names/*8*/),1))));
  1964. _i=1;
  1965. while (!((_i)>(r85count((T85*)((C)->_names/*8*/))))) {
  1966. _fn=r85item((T85*)((C)->_names/*8*/),_i);
  1967. /*[IF*/
  1968. if(r92has(((T92*)a1),X83to_key(_fn))){
  1969. _fn=/*X93first_name*/((T0*)/*(IRF4.6first_name*/r85item(((T85*)(((T199*)(r92at(((T92*)a1),X83to_key(_fn))))->_names/*8*/)),1)/*)*/);
  1970. r21add_position(X83start_position(_fn));
  1971. r21add_position(X83start_position(r85item((T85*)((C)->_names/*8*/),_i)));
  1972. r21error((T21*)(oBC12eh),((T0*)ms93_41905));
  1973. /*[IRF3.6append*/{T0* b1=X83to_string(_fn);
  1974. r7append((T7*)(oBC21explanation),b1);
  1975. }/*]*/
  1976. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  1977. }
  1978. else{
  1979. r92put(((T92*)a1),(T0*)C,X83to_key(_fn));
  1980. }
  1981. /*FI]*/
  1982. _i=(_i)+(1);
  1983. }
  1984. }
  1985.  
  1986.  
  1987. T6 r211can_hide(T211* C,T0* a1,T0* a2){
  1988. T6 R=0;
  1989. /*[IF*/
  1990. if(((C)->_result_type/*20*/)!=((void*)(X93result_type(a1)))){
  1991. /*[IF*/
  1992. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X93result_type(a1))==((void*)(NULL)))){
  1993. r21add_position(X93start_position(a1));
  1994. r211error(r211start_position(C),((T0*)ms93_64647));
  1995. }
  1996. /*FI]*/
  1997. }
  1998. /*FI]*/
  1999. /*[IF*/
  2000. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X93arguments(a1)))){
  2001. /*[IF*/
  2002. {/*AT*/r21add_position(X93start_position(a1));
  2003. r211error(r211start_position(C),((T0*)ms93_83182));
  2004. }
  2005. /*FI]*/
  2006. }
  2007. /*FI]*/
  2008. /*[IF*/
  2009. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  2010. /*[IF*/
  2011. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  2012. /*[IF*/
  2013. if(!(X54is_a_in((C)->_result_type/*20*/,X93result_type(a1),a2))){
  2014. /*[IRF3.6append*/{T0* b1=((T0*)ms93_54285);
  2015. r7append((T7*)(oBC21explanation),b1);
  2016. }/*]*/
  2017. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)a2))->_current_type/*0*/);
  2018. r7append((T7*)(oBC21explanation),b1);
  2019. }/*]*/
  2020. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  2021. }
  2022. /*FI]*/
  2023. }
  2024. /*FI]*/
  2025. }
  2026. /*FI]*/
  2027. /*[IF*/
  2028. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  2029. /*[IF*/
  2030. /*AF*//*AE*/
  2031. /*FI]*/
  2032. }
  2033. /*FI]*/
  2034. R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
  2035. /*[IF*/
  2036. if(R){
  2037. r211merge_header_comments(C,a1);
  2038. }
  2039. /*FI]*/
  2040. return R;
  2041. }
  2042. /*No:CST_ATT_REAL.ensure_assertion*/
  2043.  
  2044.  
  2045. T0* r211try_to_undefine(T211* C,T0* a1,T0* a2){
  2046. T0* R=NULL;
  2047. T0* _fn2=NULL;
  2048. r21add_position(X83start_position(a1));
  2049. _fn2=r85feature_name((T85*)((C)->_names/*8*/),X83to_key(a1));
  2050. /*[IF*/
  2051. if((_fn2)!=((void*)(NULL))){
  2052. X83undefine_in(_fn2,a2);
  2053. }
  2054. /*FI]*/
  2055. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  2056. /*]*/
  2057. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  2058. /*]*/
  2059. /*]*/
  2060. R=r211try_to_undefine_aux(C,a1,a2);
  2061. /*[IF*/
  2062. if((R)!=((void*)(NULL))){
  2063. /*X284set_clients*//*[IRF3.3set_clients*/((((T287*)(((T287*)R))))->_clients)=((C)->_clients/*16*/);
  2064. /*]*/
  2065. r211merge_header_comments(C,R);
  2066. }
  2067. else{
  2068. r63fatal_undefine(((T63*)a2),a1);
  2069. }
  2070. /*FI]*/
  2071. return R;
  2072. }
  2073. /*No:CST_ATT_REAL.is_deferred*/
  2074. /*No:CST_ATT_REAL.set_clients*/
  2075. /*No:CST_ATT_REAL.value*/
  2076. /*No:CST_ATT_REAL.nb_errors*/
  2077.  
  2078.  
  2079. T0* r211to_run_feature(T211* C,T0* a1,T0* a2){
  2080. T0* R=NULL;
  2081. T0* _rc=NULL;
  2082. _rc=X54run_class(a1);
  2083. R=r24at(((T24*)_rc),a2);
  2084. if(NULL!=(R))switch(((T0*)R)->id) {
  2085. case 376: 
  2086. break;
  2087. default:
  2088. R=NULL;
  2089. };/*[IF*/
  2090. if((R)==((void*)(NULL))){
  2091. {T376*n=malloc(sizeof(*n));
  2092. *n=M376;
  2093. r376make(n,a1,a2,(T0*)C);
  2094. R=(T0*)n;
  2095. }
  2096. }
  2097. /*FI]*/
  2098. return R;
  2099. }
  2100.  
  2101.  
  2102. void r211merge_header_comments(T211* C,T0* a1){
  2103. /*[IF*/
  2104. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  2105. /*[IF*/
  2106. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  2107. C->_header_comment=/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/);
  2108. }
  2109.  else if((/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  2110. X93set_header_comment(a1,(C)->_header_comment/*12*/);
  2111. }
  2112. /*FI]*/
  2113. }
  2114. /*FI]*/
  2115. }
  2116. /*No:CST_ATT_REAL.arguments*/
  2117. /*No:CST_ATT_REAL.require_assertion*/
  2118.  
  2119.  
  2120. T0* r211try_to_undefine_aux(T211* C,T0* a1,T0* a2){
  2121. T0* R=NULL;
  2122. r21add_position(r211start_position(C));
  2123. r211error(X83start_position(a1),((T0*)ms201_99414));
  2124. r63fatal_undefine(((T63*)a2),a1);
  2125. return R;
  2126. }
  2127. /*No:CST_ATT_REAL.fz_dot*/
  2128. /*No:CST_ATT_REAL.stupid_switch*/
  2129.  
  2130.  
  2131. void r211error(T0* a1,T0* a2){
  2132. r21add_position(a1);
  2133. r21error((T21*)(oBC12eh),a2);
  2134. }
  2135.  
  2136.  
  2137. void r211make(T211* C,T0* a1,T0* a2,T0* a3){
  2138. /*[IRF3.3make_e_feature*/((((T211*)(C)))->_names)=(a1);
  2139. /*]*/
  2140. C->_result_type=a2;
  2141. C->_value_mem=a3;
  2142. }
  2143.  
  2144.  
  2145. void r211collect_for(T2 a1){
  2146. T0* _er=NULL;
  2147. /*[IF*/
  2148. if((a1)==(1)){
  2149. _er=/*(IRF4.1require_assertion*/NULL/*)*/;
  2150. /*[IF*/
  2151. if((_er)!=((void*)(NULL))){
  2152. /*[IF*/
  2153. if(!(r358fast_has((T358*)(oBC93require_collector),_er))){
  2154. r358add_last((T358*)(oBC93require_collector),_er);
  2155. }
  2156. /*FI]*/
  2157. }
  2158. /*FI]*/
  2159. }
  2160. else{
  2161. /*[IF*/
  2162. /*AF*//*AE*/
  2163. /*FI]*/
  2164. }
  2165. /*FI]*/
  2166. }
  2167. /*No:CST_ATT_REAL.set_header_comment*/
  2168. /*No:CST_ATT_REAL.clients*/
  2169.  
  2170.  
  2171. T0* r290run_require(T0* a1){
  2172. T0* R=NULL;
  2173. T0* _ct=NULL;
  2174. T0* _ar=NULL;
  2175. T0* _hc=NULL;
  2176. T0* _er=NULL;
  2177. T0* _r=NULL;
  2178. T2 _i=0;
  2179. r358clear((T358*)(oBC93require_collector));
  2180. _ct=/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/);
  2181. r63collect_for((T63*)(X54base_class(_ct)),1,/*X51name*/((T0*)(((T324*)a1))->_name/*16*/));
  2182. /*[IF*/
  2183. if(!(r358empty((T358*)(oBC93require_collector)))){
  2184. _i=1;
  2185. while (!((_i)>(((T358*)(oBC93require_collector))->_upper/*8*/))) {
  2186. _er=r358item((T358*)(oBC93require_collector),_i);
  2187. _hc=(((T286*)_er))->_header_comment/*4*/;
  2188. /*[IF*/
  2189. if(!(/*(IRF4.7empty*/((((T286*)_er))->_list/*8*/)==(NULL)/*)*/)){
  2190. _r=r290runnable((((T286*)_er))->_list/*8*/,_ct,a1);
  2191. /*[IF*/
  2192. if((_r)!=((void*)(NULL))){
  2193. {T286*n=malloc(sizeof(*n));
  2194. *n=M286;
  2195. r286make_runnable(n,_r,_ct,a1);
  2196. _er=(T0*)n;
  2197. }
  2198. /*[IRF3.3set_header_comment*/((((T286*)(((T286*)_er))))->_header_comment)=(_hc);
  2199. /*]*/
  2200. /*[IF*/
  2201. if((_ar)==((void*)(NULL))){
  2202. _ar=se_ma358(1,
  2203. _er);
  2204. }
  2205. else{
  2206. r358add_last(((T358*)_ar),_er);
  2207. }
  2208. /*FI]*/
  2209. }
  2210. /*FI]*/
  2211. }
  2212. /*FI]*/
  2213. _i=(_i)+(1);
  2214. }
  2215. /*[IF*/
  2216. if((_ar)!=((void*)(NULL))){
  2217. {T357*n=malloc(sizeof(*n));
  2218. *n=M357;
  2219. /*[IRF3.3make*/((((T357*)(n)))->_list)=(_ar);
  2220. /*]*/
  2221. R=(T0*)n;
  2222. }
  2223. }
  2224. /*FI]*/
  2225. }
  2226. /*FI]*/
  2227. return R;
  2228. }
  2229. /*No:EXTERNAL_PROCEDURE.base_class*/
  2230.  
  2231.  
  2232. void r290set_rescue_compound(T290* C,T0* a1){
  2233. /*[IF*/
  2234. if((a1)!=((void*)(NULL))){
  2235. r21add_position(r216start_position(((T216*)a1)));
  2236. }
  2237. else{
  2238. r21add_position(r290start_position(C));
  2239. }
  2240. /*FI]*/
  2241. /*[IRF3.6append*/{T0* b1=((T0*)ms289_126759);
  2242. r7append((T7*)(oBC21explanation),b1);
  2243. }/*]*/
  2244. r21print_as_fatal_error((T21*)(oBC12eh));
  2245. }
  2246. /*No:EXTERNAL_PROCEDURE.base_class_name*/
  2247.  
  2248.  
  2249. T0* r290start_position(T290* C){
  2250. T0* R=NULL;
  2251. R=X83start_position(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/);
  2252. return R;
  2253. }
  2254.  
  2255.  
  2256. T6 r290is_merge_with(T290* C,T0* a1,T0* a2){
  2257. T6 R=0;
  2258. R=1;
  2259. /*[IF*/
  2260. if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X93result_type(a1)))){
  2261. /*[IF*/
  2262. {/*AT*/R=0;
  2263. }
  2264. /*FI]*/
  2265. }
  2266. /*FI]*/
  2267. /*[IF*/
  2268. if(((C)->_arguments/*20*/)!=((void*)(X93arguments(a1)))){
  2269. /*[IF*/
  2270. if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X93arguments(a1))==((void*)(NULL)))){
  2271. R=0;
  2272. }
  2273.  else if((/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T191*)(((T187*)(X93arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  2274. R=0;
  2275. }
  2276. /*FI]*/
  2277. }
  2278. /*FI]*/
  2279. /*[IF*/
  2280. if(R){
  2281. /*[IF*/
  2282. /*AF*//*AE*/
  2283. /*FI]*/
  2284. /*[IF*/
  2285. if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
  2286. R=r187is_a_in((T187*)((C)->_arguments/*20*/),X93arguments(a1),a2);
  2287. }
  2288. /*FI]*/
  2289. /*[IF*/
  2290. if(!(R)){
  2291. R=1;
  2292. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  2293. /*]*/
  2294. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  2295. /*]*/
  2296. /*]*/
  2297. /*[IF*/
  2298. /*AF*//*AE*/
  2299. /*FI]*/
  2300. /*[IF*/
  2301. if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
  2302. R=r187is_a_in((T187*)(X93arguments(a1)),(C)->_arguments/*20*/,a2);
  2303. }
  2304. /*FI]*/
  2305. }
  2306. /*FI]*/
  2307. }
  2308. /*FI]*/
  2309. /*[IF*/
  2310. if(R){
  2311. r290merge_header_comments(C,a1);
  2312. }
  2313. /*FI]*/
  2314. return R;
  2315. }
  2316.  
  2317.  
  2318. T0* r290runnable(T0* a1,T0* a2,T0* a3){
  2319. T0* R=NULL;
  2320. T0* _a=NULL;
  2321. T2 _i=0;
  2322. /*[IF*/
  2323. if(!(r106empty(((T106*)a1)))){
  2324. R=r106twin(((T106*)a1));
  2325. _i=(((T106*)R))->_upper/*8*/;
  2326. while (!((_i)==(0))) {
  2327. r22push((T22*)(oBC12small_eiffel),a3);
  2328. _a=r103to_runnable((T103*)(r106item(((T106*)R),_i)),a2);
  2329. /*[IF*/
  2330. if((_a)==((void*)(NULL))){
  2331. r290error(r103start_position((T103*)(r106item(((T106*)R),_i))),((T0*)ms13_14266));
  2332. }
  2333. else{
  2334. /*[IRF3.6put*/{T106* C1=((T106*)R);
  2335. T0* b1=_a;
  2336. T2 b2=_i;
  2337. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  2338. }/*]*/
  2339. }
  2340. /*FI]*/
  2341. r22pop((T22*)(oBC12small_eiffel));
  2342. _i=(_i)-(1);
  2343. }
  2344. }
  2345. /*FI]*/
  2346. return R;
  2347. }
  2348. /*No:EXTERNAL_PROCEDURE.first_name*/
  2349. /*No:EXTERNAL_PROCEDURE.em1*/
  2350.  
  2351.  
  2352. T6 r290use_current(T290* C){
  2353. T6 R=0;
  2354. R=X288use_current((C)->_native/*40*/,(T0*)C);
  2355. return R;
  2356. }
  2357. /*No:EXTERNAL_PROCEDURE.header_comment*/
  2358. /*No:EXTERNAL_PROCEDURE.names*/
  2359.  
  2360.  
  2361. void r290mapping_c_name_in(T290* C,T0* a1){
  2362. r63mapping_c_in((T63*)((C)->_base_class/*4*/),a1);
  2363. r7append(((T7*)a1),X83to_key(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/));
  2364. }
  2365. /*No:EXTERNAL_PROCEDURE.fz_03*/
  2366.  
  2367.  
  2368. void r290make_external_routine(T290* C,T0* a1,T0* a2){
  2369. C->_native=a1;
  2370. C->_alias_string=a2;
  2371. }
  2372. /*No:EXTERNAL_PROCEDURE.result_type*/
  2373. /*No:EXTERNAL_PROCEDURE.code_require*/
  2374. /*No:EXTERNAL_PROCEDURE.make_e_feature*/
  2375.  
  2376.  
  2377. void r290add_into(T290* C,T0* a1){
  2378. T0* _fn=NULL;
  2379. T2 _i=0;
  2380. C->_base_class=r70base_class((T70*)(X83start_position(r85item((T85*)((C)->_names/*8*/),1))));
  2381. _i=1;
  2382. while (!((_i)>(r85count((T85*)((C)->_names/*8*/))))) {
  2383. _fn=r85item((T85*)((C)->_names/*8*/),_i);
  2384. /*[IF*/
  2385. if(r92has(((T92*)a1),X83to_key(_fn))){
  2386. _fn=/*X93first_name*/((T0*)/*(IRF4.6first_name*/r85item(((T85*)(((T199*)(r92at(((T92*)a1),X83to_key(_fn))))->_names/*8*/)),1)/*)*/);
  2387. r21add_position(X83start_position(_fn));
  2388. r21add_position(X83start_position(r85item((T85*)((C)->_names/*8*/),_i)));
  2389. r21error((T21*)(oBC12eh),((T0*)ms93_41905));
  2390. /*[IRF3.6append*/{T0* b1=X83to_string(_fn);
  2391. r7append((T7*)(oBC21explanation),b1);
  2392. }/*]*/
  2393. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  2394. }
  2395. else{
  2396. r92put(((T92*)a1),(T0*)C,X83to_key(_fn));
  2397. }
  2398. /*FI]*/
  2399. _i=(_i)+(1);
  2400. }
  2401. }
  2402.  
  2403.  
  2404. T6 r290can_hide(T290* C,T0* a1,T0* a2){
  2405. T6 R=0;
  2406. /*[IF*/
  2407. if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X93result_type(a1)))){
  2408. /*[IF*/
  2409. {/*AT*/r21add_position(X93start_position(a1));
  2410. r290error(r290start_position(C),((T0*)ms93_64647));
  2411. }
  2412. /*FI]*/
  2413. }
  2414. /*FI]*/
  2415. /*[IF*/
  2416. if(((C)->_arguments/*20*/)!=((void*)(X93arguments(a1)))){
  2417. /*[IF*/
  2418. if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X93arguments(a1))==((void*)(NULL)))){
  2419. r21add_position(X93start_position(a1));
  2420. r290error(r290start_position(C),((T0*)ms93_83182));
  2421. }
  2422.  else if((/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T191*)(((T187*)(X93arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  2423. r21add_position(X93start_position(a1));
  2424. r290error(r290start_position(C),((T0*)ms93_67155));
  2425. }
  2426. /*FI]*/
  2427. }
  2428. /*FI]*/
  2429. /*[IF*/
  2430. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  2431. /*[IF*/
  2432. /*AF*//*AE*/
  2433. /*FI]*/
  2434. }
  2435. /*FI]*/
  2436. /*[IF*/
  2437. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  2438. /*[IF*/
  2439. if(((C)->_arguments/*20*/)!=((void*)(NULL))){
  2440. /*[IF*/
  2441. if(!(r187is_a_in((T187*)((C)->_arguments/*20*/),X93arguments(a1),a2))){
  2442. r21add_position(X93start_position(a1));
  2443. r21add_position(r290start_position(C));
  2444. /*[IRF3.6append*/{T0* b1=((T0*)ms93_54285);
  2445. r7append((T7*)(oBC21explanation),b1);
  2446. }/*]*/
  2447. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)a2))->_current_type/*0*/);
  2448. r7append((T7*)(oBC21explanation),b1);
  2449. }/*]*/
  2450. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  2451. }
  2452. /*FI]*/
  2453. }
  2454. /*FI]*/
  2455. }
  2456. /*FI]*/
  2457. R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
  2458. /*[IF*/
  2459. if(R){
  2460. r290merge_header_comments(C,a1);
  2461. }
  2462. /*FI]*/
  2463. return R;
  2464. }
  2465. /*No:EXTERNAL_PROCEDURE.ensure_assertion*/
  2466.  
  2467.  
  2468. T0* r290run_ensure(T0* a1){
  2469. T0* R=NULL;
  2470. T0* _ct=NULL;
  2471. T0* _r=NULL;
  2472. r106clear((T106*)(oBC93assertion_collector));
  2473. /*[IRF3.3clear*/{T0* _default_item=NULL;
  2474. ((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(_default_item);
  2475. }/*]*/
  2476. _ct=/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/);
  2477. r63collect_for((T63*)(X54base_class(_ct)),2,/*X51name*/((T0*)(((T324*)a1))->_name/*16*/));
  2478. _r=r290runnable(oBC93assertion_collector,_ct,a1);
  2479. /*[IF*/
  2480. if((_r)!=((void*)(NULL))){
  2481. {T215*n=malloc(sizeof(*n));
  2482. *n=M215;
  2483. r215make_runnable(n,_r,_ct,a1);
  2484. R=(T0*)n;
  2485. }
  2486. /*[IRF3.3set_header_comment*/((((T215*)(((T215*)R))))->_header_comment)=(((T371*)(oBC93header_comment_memory))->_item/*0*/);
  2487. /*]*/
  2488. /*[IRF3.3clear*/{T0* _default_item=NULL;
  2489. ((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(_default_item);
  2490. }/*]*/
  2491. }
  2492. /*FI]*/
  2493. return R;
  2494. }
  2495.  
  2496.  
  2497. void r290check_obsolete(T290* C){
  2498. /*[IF*/
  2499. if(!(((T22*)(oBC12small_eiffel))->_short_flag/*8*/)){
  2500. /*[IF*/
  2501. if(((C)->_obsolete_mark/*24*/)!=((void*)(NULL))){
  2502. /*[IRF3.6append*/{T0* b1=((T0*)ms214_39396);
  2503. r7append((T7*)(oBC21explanation),b1);
  2504. }/*]*/
  2505. /*[IRF3.6append*/{T0* b1=((T171*)((C)->_obsolete_mark/*24*/))->_to_string/*8*/;
  2506. r7append((T7*)(oBC21explanation),b1);
  2507. }/*]*/
  2508. r290warning(r290start_position(C),((T0*)ms13_166));
  2509. }
  2510. /*FI]*/
  2511. }
  2512. /*FI]*/
  2513. }
  2514.  
  2515.  
  2516. T0* r290try_to_undefine(T290* C,T0* a1,T0* a2){
  2517. T0* R=NULL;
  2518. T0* _fn2=NULL;
  2519. r21add_position(X83start_position(a1));
  2520. _fn2=r85feature_name((T85*)((C)->_names/*8*/),X83to_key(a1));
  2521. /*[IF*/
  2522. if((_fn2)!=((void*)(NULL))){
  2523. X83undefine_in(_fn2,a2);
  2524. }
  2525. /*FI]*/
  2526. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  2527. /*]*/
  2528. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  2529. /*]*/
  2530. /*]*/
  2531. R=r290try_to_undefine_aux(C,a1,a2);
  2532. /*[IF*/
  2533. if((R)!=((void*)(NULL))){
  2534. /*X284set_clients*//*[IRF3.3set_clients*/((((T287*)(((T287*)R))))->_clients)=((C)->_clients/*16*/);
  2535. /*]*/
  2536. r290merge_header_comments(C,R);
  2537. }
  2538. else{
  2539. r63fatal_undefine(((T63*)a2),a1);
  2540. }
  2541. /*FI]*/
  2542. return R;
  2543. }
  2544. /*No:EXTERNAL_PROCEDURE.is_deferred*/
  2545. /*No:EXTERNAL_PROCEDURE.set_clients*/
  2546. /*No:EXTERNAL_PROCEDURE.native*/
  2547. /*No:EXTERNAL_PROCEDURE.code_ensure*/
  2548. /*No:EXTERNAL_PROCEDURE.nb_errors*/
  2549.  
  2550.  
  2551. void r290make_routine(T290* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  2552. /*[IRF3.3make_e_feature*/((((T290*)(C)))->_names)=(a1);
  2553. /*]*/
  2554. C->_header_comment=a4;
  2555. C->_arguments=a2;
  2556. C->_obsolete_mark=a3;
  2557. C->_require_assertion=a5;
  2558. }
  2559.  
  2560.  
  2561. T0* r290to_run_feature(T290* C,T0* a1,T0* a2){
  2562. T0* R=NULL;
  2563. r290check_obsolete(C);
  2564. {T387*n=malloc(sizeof(*n));
  2565. *n=M387;
  2566. r387make(n,a1,a2,(T0*)C);
  2567. R=(T0*)n;
  2568. }
  2569. return R;
  2570. }
  2571.  
  2572.  
  2573. void r290merge_header_comments(T290* C,T0* a1){
  2574. /*[IF*/
  2575. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  2576. /*[IF*/
  2577. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  2578. C->_header_comment=/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/);
  2579. }
  2580.  else if((/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  2581. X93set_header_comment(a1,(C)->_header_comment/*12*/);
  2582. }
  2583. /*FI]*/
  2584. }
  2585. /*FI]*/
  2586. }
  2587. /*No:EXTERNAL_PROCEDURE.arguments*/
  2588. /*No:EXTERNAL_PROCEDURE.require_assertion*/
  2589.  
  2590.  
  2591. T0* r290external_c_name(T290* C){
  2592. T0* R=NULL;
  2593. /*[IF*/
  2594. if(((C)->_alias_string/*44*/)==((void*)(NULL))){
  2595. R=X83to_string(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/);
  2596. }
  2597. else{
  2598. R=(C)->_alias_string/*44*/;
  2599. }
  2600. /*FI]*/
  2601. return R;
  2602. }
  2603.  
  2604.  
  2605. void r290warning(T0* a1,T0* a2){
  2606. r21add_position(a1);
  2607. r21warning((T21*)(oBC12eh),a2);
  2608. }
  2609.  
  2610.  
  2611. T0* r290try_to_undefine_aux(T290* C,T0* a1,T0* a2){
  2612. T0* R=NULL;
  2613. {T285*n=malloc(sizeof(*n));
  2614. *n=M285;
  2615. r285from_effective(n,a1,(C)->_arguments/*20*/,(C)->_require_assertion/*28*/,(C)->_ensure_assertion/*32*/,a2);
  2616. R=(T0*)n;
  2617. }
  2618. return R;
  2619. }
  2620. /*No:EXTERNAL_PROCEDURE.set_ensure_assertion*/
  2621. /*No:EXTERNAL_PROCEDURE.fz_bad_assertion*/
  2622. /*No:EXTERNAL_PROCEDURE.fz_dot*/
  2623.  
  2624.  
  2625. T6 r290stupid_switch(T290* C,T0* a1,T0* a2){
  2626. T6 R=0;
  2627. R=X288stupid_switch((C)->_native/*40*/,X83to_string(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/));
  2628. return R;
  2629. }
  2630. /*No:EXTERNAL_PROCEDURE.alias_string*/
  2631.  
  2632.  
  2633. void r290error(T0* a1,T0* a2){
  2634. r21add_position(a1);
  2635. r21error((T21*)(oBC12eh),a2);
  2636. }
  2637.  
  2638.  
  2639. void r290make(T290* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  2640. r290make_routine(C,a1,a2,a3,a4,a5);
  2641. r290make_external_routine(C,a6,a7);
  2642. }
  2643. /*No:EXTERNAL_PROCEDURE.end_comment*/
  2644.  
  2645.  
  2646. void r290collect_for(T290* C,T2 a1){
  2647. T0* _er=NULL;
  2648. /*[IF*/
  2649. if((a1)==(1)){
  2650. _er=(C)->_require_assertion/*28*/;
  2651. /*[IF*/
  2652. if((_er)!=((void*)(NULL))){
  2653. /*[IF*/
  2654. if(!(r358fast_has((T358*)(oBC93require_collector),_er))){
  2655. r358add_last((T358*)(oBC93require_collector),_er);
  2656. }
  2657. /*FI]*/
  2658. }
  2659. /*FI]*/
  2660. }
  2661. else{
  2662. /*[IF*/
  2663. if(((C)->_ensure_assertion/*32*/)!=((void*)(NULL))){
  2664. /*[IRF3.3set_item*/((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(((T215*)((C)->_ensure_assertion/*32*/))->_header_comment/*4*/);
  2665. /*]*/
  2666. r215add_into((T215*)((C)->_ensure_assertion/*32*/),oBC93assertion_collector);
  2667. }
  2668. /*FI]*/
  2669. }
  2670. /*FI]*/
  2671. }
  2672.  
  2673.  
  2674. void r290set_header_comment(T290* C,T0* a1){
  2675. /*[IF*/
  2676. if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)>(1))){
  2677. C->_end_comment=a1;
  2678. }
  2679. /*FI]*/
  2680. }
  2681. /*No:EXTERNAL_PROCEDURE.clients*/
  2682. /*No:EXTERNAL_PROCEDURE.obsolete_mark*/
  2683. /*No:IFTHEN.nb_errors*/
  2684. /*No:IFTHEN.static_false*/
  2685. /*No:IFTHEN.non_static*/
  2686. /*No:IFTHEN.fz_if*/
  2687. /*No:IFTHEN.expression*/
  2688. /*No:IFTHEN.fz_is_not_boolean*/
  2689. /*No:IFTHEN.then_compound*/
  2690.  
  2691.  
  2692. T6 r226use_current(T226* C){
  2693. T6 R=0;
  2694. R=X56use_current((C)->_expression/*0*/);
  2695. /*[IF*/
  2696. if((!(R))&&(((C)->_then_compound/*4*/)!=((void*)(NULL)))){
  2697. R=r216use_current((T216*)((C)->_then_compound/*4*/));
  2698. }
  2699. /*FI]*/
  2700. return R;
  2701. }
  2702.  
  2703.  
  2704. T2 r226compile_to_c(T226* C,T6 a1){
  2705. T2 R=0;
  2706. T6 _trace=0;
  2707. /*[IF*/
  2708. if(X56is_static((C)->_expression/*0*/)){
  2709. r25incr_static_expression_count((T25*)(oBC12cpp));
  2710. /*[IF*/
  2711. if((X56static_value((C)->_expression/*0*/))==(1)){
  2712. r226print_else(a1);
  2713. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms226_4935));
  2714. /*]*/
  2715. /*[IF*/
  2716. if(((C)->_then_compound/*4*/)!=((void*)(NULL))){
  2717. r216compile_to_c((T216*)((C)->_then_compound/*4*/));
  2718. }
  2719. /*FI]*/
  2720. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_276));
  2721. /*]*/
  2722. R=20;
  2723. }
  2724. else{
  2725. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms226_3378));
  2726. /*]*/
  2727. R=21;
  2728. }
  2729. /*FI]*/
  2730. }
  2731. else{
  2732. R=22;
  2733. _trace=(!(X56c_simple((C)->_expression/*0*/)))&&(r43no_check((T43*)(oBC12run_control)));
  2734. r226print_else(a1);
  2735. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_420));
  2736. /*]*/
  2737. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2738. T3 b1='\50';
  2739. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2740. }/*]*/
  2741. /*]*/
  2742. /*[IF*/
  2743. if(_trace){
  2744. r25trace_boolean_expression((T25*)(oBC12cpp),(C)->_expression/*0*/);
  2745. }
  2746. else{
  2747. X56compile_to_c((C)->_expression/*0*/);
  2748. }
  2749. /*FI]*/
  2750. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2751. T3 b1='\51';
  2752. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2753. }/*]*/
  2754. /*]*/
  2755. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_272));
  2756. /*]*/
  2757. /*[IF*/
  2758. if(((C)->_then_compound/*4*/)!=((void*)(NULL))){
  2759. r216compile_to_c((T216*)((C)->_then_compound/*4*/));
  2760. }
  2761. /*FI]*/
  2762. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_276));
  2763. /*]*/
  2764. }
  2765. /*FI]*/
  2766. return R;
  2767. }
  2768.  
  2769.  
  2770. T0* r226to_runnable(T226* C,T0* a1){
  2771. T0* R=NULL;
  2772. T0* _t=NULL;
  2773. T0* _tc=NULL;
  2774. T0* _e=NULL;
  2775. /*[IF*/
  2776. if(((C)->_current_type/*8*/)==((void*)(NULL))){
  2777. C->_current_type=a1;
  2778. _e=X56to_runnable((C)->_expression/*0*/,a1);
  2779. /*[IF*/
  2780. if((_e)==((void*)(NULL))){
  2781. r226error(X56start_position((C)->_expression/*0*/),((T0*)ms226_32982));
  2782. }
  2783. else{
  2784. C->_expression=_e;
  2785. _t=X56result_type((C)->_expression/*0*/);
  2786. /*[IF*/
  2787. if(!(X54is_boolean(_t))){
  2788. /*[IRF3.6append*/{T0* b1=((T0*)ms226_75563);
  2789. r7append((T7*)(oBC21explanation),b1);
  2790. }/*]*/
  2791. r21add_type(X56result_type((C)->_expression/*0*/),((T0*)ms13_18320));
  2792. r21add_position(X56start_position((C)->_expression/*0*/));
  2793. r21print_as_error((T21*)(oBC12eh));
  2794. }
  2795. /*FI]*/
  2796. }
  2797. /*FI]*/
  2798. /*[IF*/
  2799. if(((C)->_then_compound/*4*/)!=((void*)(NULL))){
  2800. _tc=r216to_runnable((T216*)((C)->_then_compound/*4*/),a1);
  2801. /*[IF*/
  2802. if((_tc)!=((void*)(NULL))){
  2803. C->_then_compound=_tc;
  2804. }
  2805. /*FI]*/
  2806. }
  2807. /*FI]*/
  2808. /*[IF*/
  2809. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  2810. R=(T0*)C;
  2811. }
  2812. /*FI]*/
  2813. }
  2814. else{
  2815. {T226*n=malloc(sizeof(*n));
  2816. *n=M226;
  2817. r226make(n,(C)->_expression/*0*/,(C)->_then_compound/*4*/);
  2818. R=(T0*)n;
  2819. }
  2820. R=r226to_runnable(((T226*)R),a1);
  2821. }
  2822. /*FI]*/
  2823. return R;
  2824. }
  2825. /*No:IFTHEN.current_type*/
  2826. /*No:IFTHEN.fz_11*/
  2827. /*No:IFTHEN.fz_12*/
  2828.  
  2829.  
  2830. void r226collect_c_tmp(T226* C){
  2831. X56collect_c_tmp((C)->_expression/*0*/);
  2832. }
  2833.  
  2834.  
  2835. void r226error(T0* a1,T0* a2){
  2836. r21add_position(a1);
  2837. r21error((T21*)(oBC12eh),a2);
  2838. }
  2839.  
  2840.  
  2841. void r226make(T226* C,T0* a1,T0* a2){
  2842. C->_expression=a1;
  2843. C->_then_compound=a2;
  2844. }
  2845.  
  2846.  
  2847. void r226print_else(T6 a1){
  2848. /*[IF*/
  2849. if(a1){
  2850. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms226_3984));
  2851. /*]*/
  2852. }
  2853. /*FI]*/
  2854. }
  2855.  
  2856.  
  2857. void r226afd_check(T226* C){
  2858. X56afd_check((C)->_expression/*0*/);
  2859. /*[IF*/
  2860. if(((C)->_then_compound/*4*/)!=((void*)(NULL))){
  2861. r216afd_check((T216*)((C)->_then_compound/*4*/));
  2862. }
  2863. /*FI]*/
  2864. }
  2865. /*No:IFTHEN.static_true*/
  2866. /*No:CLIENT_LIST.start_position*/
  2867.  
  2868.  
  2869. T6 r101gives_permission_to_any(T101* C){
  2870. T6 R=0;
  2871. /*[IF*/
  2872. if(/*(IRF4.7is_omitted*/((C)->_start_position/*0*/)==(NULL)/*)*/){
  2873. R=1;
  2874. }
  2875.  else if(((C)->_list/*4*/)==((void*)(NULL))){
  2876. }
  2877. else{
  2878. R=r195gives_permission_to_any((T195*)((C)->_list/*4*/));
  2879. }
  2880. /*FI]*/
  2881. return R;
  2882. }
  2883.  
  2884.  
  2885. void r101merge(T101* C,T0* a1,T0* a2,T0* a3){
  2886. C->_start_position=a1;
  2887. {T195*n=malloc(sizeof(*n));
  2888. *n=M195;
  2889. r195merge(n,a2,a3);
  2890. C->_list=(T0*)n;
  2891. }
  2892. }
  2893. /*No:CLIENT_LIST.is_omitted*/
  2894.  
  2895.  
  2896. T6 r101gives_permission_to(T101* C,T0* a1){
  2897. T6 R=0;
  2898. /*[IF*/
  2899. if(/*(IRF4.7is_omitted*/((C)->_start_position/*0*/)==(NULL)/*)*/){
  2900. R=1;
  2901. }
  2902.  else if(((C)->_list/*4*/)==((void*)(NULL))){
  2903. }
  2904. else{
  2905. R=r195gives_permission_to((T195*)((C)->_list/*4*/),a1);
  2906. }
  2907. /*FI]*/
  2908. /*[IF*/
  2909. if(R){
  2910. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  2911. /*]*/
  2912. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  2913. /*]*/
  2914. /*]*/
  2915. }
  2916. else{
  2917. r21add_position((C)->_start_position/*0*/);
  2918. /*[IRF3.6append*/{T0* b1=(((T64*)a1))->_to_string/*0*/;
  2919. r7append((T7*)(oBC21explanation),b1);
  2920. }/*]*/
  2921. /*[IRF3.6append*/{T0* b1=((T0*)ms101_56885);
  2922. r7append((T7*)(oBC21explanation),b1);
  2923. }/*]*/
  2924. }
  2925. /*FI]*/
  2926. return R;
  2927. }
  2928.  
  2929.  
  2930. void r101make(T101* C,T0* a1,T0* a2){
  2931. C->_start_position=a1;
  2932. C->_list=a2;
  2933. }
  2934.  
  2935.  
  2936. T0* r101append(T101* C,T0* a1){
  2937. T0* R=NULL;
  2938. /*[IF*/
  2939. if(((C)==((void*)(a1)))||(/*(IRF4.7is_omitted*/((C)->_start_position/*0*/)==(NULL)/*)*/)){
  2940. R=(T0*)C;
  2941. }
  2942. else{
  2943. /*[IF*/
  2944. if(r101gives_permission_to_any(C)){
  2945. R=(T0*)C;
  2946. }
  2947. else{
  2948. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  2949. /*]*/
  2950. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  2951. /*]*/
  2952. /*]*/
  2953. /*[IF*/
  2954. if(/*(IRF4.7is_omitted*/((((T101*)a1))->_start_position/*0*/)==(NULL)/*)*/){
  2955. R=a1;
  2956. }
  2957.  else if(r101gives_permission_to_any(((T101*)a1))){
  2958. R=a1;
  2959. }
  2960. else{
  2961. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  2962. /*]*/
  2963. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  2964. /*]*/
  2965. /*]*/
  2966. {T101*n=malloc(sizeof(*n));
  2967. *n=M101;
  2968. r101merge(n,(C)->_start_position/*0*/,(C)->_list/*4*/,(((T101*)a1))->_list/*4*/);
  2969. R=(T0*)n;
  2970. }
  2971. }
  2972. /*FI]*/
  2973. }
  2974. /*FI]*/
  2975. }
  2976. /*FI]*/
  2977. return R;
  2978. }
  2979. /*No:CLIENT_LIST.omitted*/
  2980.  
  2981.  
  2982. T0* r101merge_with(T101* C,T0* a1){
  2983. T0* R=NULL;
  2984. /*[IF*/
  2985. if(r101gives_permission_to_any(C)){
  2986. R=(T0*)C;
  2987. }
  2988.  else if(r101gives_permission_to_any(((T101*)a1))){
  2989. R=a1;
  2990. }
  2991. else{
  2992. {T101*n=malloc(sizeof(*n));
  2993. *n=M101;
  2994. r101merge(n,(C)->_start_position/*0*/,(C)->_list/*4*/,(((T101*)a1))->_list/*4*/);
  2995. R=(T0*)n;
  2996. }
  2997. }
  2998. /*FI]*/
  2999. return R;
  3000. }
  3001. /*No:CLIENT_LIST.list*/
  3002. /*No:FUNCTION.rescue_compound*/
  3003. /*No:FUNCTION.use_current_state*/
  3004.  
  3005.  
  3006. T0* r303run_require(T0* a1){
  3007. T0* R=NULL;
  3008. T0* _ct=NULL;
  3009. T0* _ar=NULL;
  3010. T0* _hc=NULL;
  3011. T0* _er=NULL;
  3012. T0* _r=NULL;
  3013. T2 _i=0;
  3014. r358clear((T358*)(oBC93require_collector));
  3015. _ct=/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/);
  3016. r63collect_for((T63*)(X54base_class(_ct)),1,/*X51name*/((T0*)(((T324*)a1))->_name/*16*/));
  3017. /*[IF*/
  3018. if(!(r358empty((T358*)(oBC93require_collector)))){
  3019. _i=1;
  3020. while (!((_i)>(((T358*)(oBC93require_collector))->_upper/*8*/))) {
  3021. _er=r358item((T358*)(oBC93require_collector),_i);
  3022. _hc=(((T286*)_er))->_header_comment/*4*/;
  3023. /*[IF*/
  3024. if(!(/*(IRF4.7empty*/((((T286*)_er))->_list/*8*/)==(NULL)/*)*/)){
  3025. _r=r303runnable((((T286*)_er))->_list/*8*/,_ct,a1);
  3026. /*[IF*/
  3027. if((_r)!=((void*)(NULL))){
  3028. {T286*n=malloc(sizeof(*n));
  3029. *n=M286;
  3030. r286make_runnable(n,_r,_ct,a1);
  3031. _er=(T0*)n;
  3032. }
  3033. /*[IRF3.3set_header_comment*/((((T286*)(((T286*)_er))))->_header_comment)=(_hc);
  3034. /*]*/
  3035. /*[IF*/
  3036. if((_ar)==((void*)(NULL))){
  3037. _ar=se_ma358(1,
  3038. _er);
  3039. }
  3040. else{
  3041. r358add_last(((T358*)_ar),_er);
  3042. }
  3043. /*FI]*/
  3044. }
  3045. /*FI]*/
  3046. }
  3047. /*FI]*/
  3048. _i=(_i)+(1);
  3049. }
  3050. /*[IF*/
  3051. if((_ar)!=((void*)(NULL))){
  3052. {T357*n=malloc(sizeof(*n));
  3053. *n=M357;
  3054. /*[IRF3.3make*/((((T357*)(n)))->_list)=(_ar);
  3055. /*]*/
  3056. R=(T0*)n;
  3057. }
  3058. }
  3059. /*FI]*/
  3060. }
  3061. /*FI]*/
  3062. return R;
  3063. }
  3064. /*No:FUNCTION.base_class*/
  3065. /*No:FUNCTION.set_rescue_compound*/
  3066. /*No:FUNCTION.base_class_name*/
  3067.  
  3068.  
  3069. T0* r303start_position(T303* C){
  3070. T0* R=NULL;
  3071. R=X83start_position(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/);
  3072. return R;
  3073. }
  3074.  
  3075.  
  3076. T6 r303is_merge_with(T303* C,T0* a1,T0* a2){
  3077. T6 R=0;
  3078. R=1;
  3079. /*[IF*/
  3080. if(((C)->_result_type/*56*/)!=((void*)(X93result_type(a1)))){
  3081. /*[IF*/
  3082. if((((C)->_result_type/*56*/)==((void*)(NULL)))||((X93result_type(a1))==((void*)(NULL)))){
  3083. R=0;
  3084. }
  3085. /*FI]*/
  3086. }
  3087. /*FI]*/
  3088. /*[IF*/
  3089. if(((C)->_arguments/*24*/)!=((void*)(X93arguments(a1)))){
  3090. /*[IF*/
  3091. if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X93arguments(a1))==((void*)(NULL)))){
  3092. R=0;
  3093. }
  3094.  else if((/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T191*)(((T187*)(X93arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  3095. R=0;
  3096. }
  3097. /*FI]*/
  3098. }
  3099. /*FI]*/
  3100. /*[IF*/
  3101. if(R){
  3102. /*[IF*/
  3103. if(((C)->_result_type/*56*/)!=((void*)(NULL))){
  3104. R=X54is_a_in((C)->_result_type/*56*/,X93result_type(a1),a2);
  3105. }
  3106. /*FI]*/
  3107. /*[IF*/
  3108. if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
  3109. R=r187is_a_in((T187*)((C)->_arguments/*24*/),X93arguments(a1),a2);
  3110. }
  3111. /*FI]*/
  3112. /*[IF*/
  3113. if(!(R)){
  3114. R=1;
  3115. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  3116. /*]*/
  3117. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  3118. /*]*/
  3119. /*]*/
  3120. /*[IF*/
  3121. if(((C)->_result_type/*56*/)!=((void*)(NULL))){
  3122. R=X54is_a_in(X93result_type(a1),(C)->_result_type/*56*/,a2);
  3123. }
  3124. /*FI]*/
  3125. /*[IF*/
  3126. if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
  3127. R=r187is_a_in((T187*)(X93arguments(a1)),(C)->_arguments/*24*/,a2);
  3128. }
  3129. /*FI]*/
  3130. }
  3131. /*FI]*/
  3132. }
  3133. /*FI]*/
  3134. /*[IF*/
  3135. if(R){
  3136. r303merge_header_comments(C,a1);
  3137. }
  3138. /*FI]*/
  3139. return R;
  3140. }
  3141.  
  3142.  
  3143. T0* r303runnable(T0* a1,T0* a2,T0* a3){
  3144. T0* R=NULL;
  3145. T0* _a=NULL;
  3146. T2 _i=0;
  3147. /*[IF*/
  3148. if(!(r106empty(((T106*)a1)))){
  3149. R=r106twin(((T106*)a1));
  3150. _i=(((T106*)R))->_upper/*8*/;
  3151. while (!((_i)==(0))) {
  3152. r22push((T22*)(oBC12small_eiffel),a3);
  3153. _a=r103to_runnable((T103*)(r106item(((T106*)R),_i)),a2);
  3154. /*[IF*/
  3155. if((_a)==((void*)(NULL))){
  3156. r303error(r103start_position((T103*)(r106item(((T106*)R),_i))),((T0*)ms13_14266));
  3157. }
  3158. else{
  3159. /*[IRF3.6put*/{T106* C1=((T106*)R);
  3160. T0* b1=_a;
  3161. T2 b2=_i;
  3162. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  3163. }/*]*/
  3164. }
  3165. /*FI]*/
  3166. r22pop((T22*)(oBC12small_eiffel));
  3167. _i=(_i)-(1);
  3168. }
  3169. }
  3170. /*FI]*/
  3171. return R;
  3172. }
  3173. /*No:FUNCTION.not_computed*/
  3174. /*No:FUNCTION.first_name*/
  3175. /*No:FUNCTION.em1*/
  3176. /*No:FUNCTION.header_comment*/
  3177. /*No:FUNCTION.names*/
  3178.  
  3179.  
  3180. void r303mapping_c_name_in(T303* C,T0* a1){
  3181. r63mapping_c_in((T63*)((C)->_base_class/*4*/),a1);
  3182. r7append(((T7*)a1),X83to_key(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/));
  3183. }
  3184. /*No:FUNCTION.fz_03*/
  3185. /*No:FUNCTION.result_type*/
  3186. /*No:FUNCTION.code_require*/
  3187. /*No:FUNCTION.make_e_feature*/
  3188.  
  3189.  
  3190. void r303add_into(T303* C,T0* a1){
  3191. T0* _fn=NULL;
  3192. T2 _i=0;
  3193. C->_base_class=r70base_class((T70*)(X83start_position(r85item((T85*)((C)->_names/*8*/),1))));
  3194. _i=1;
  3195. while (!((_i)>(r85count((T85*)((C)->_names/*8*/))))) {
  3196. _fn=r85item((T85*)((C)->_names/*8*/),_i);
  3197. /*[IF*/
  3198. if(r92has(((T92*)a1),X83to_key(_fn))){
  3199. _fn=/*X93first_name*/((T0*)/*(IRF4.6first_name*/r85item(((T85*)(((T199*)(r92at(((T92*)a1),X83to_key(_fn))))->_names/*8*/)),1)/*)*/);
  3200. r21add_position(X83start_position(_fn));
  3201. r21add_position(X83start_position(r85item((T85*)((C)->_names/*8*/),_i)));
  3202. r21error((T21*)(oBC12eh),((T0*)ms93_41905));
  3203. /*[IRF3.6append*/{T0* b1=X83to_string(_fn);
  3204. r7append((T7*)(oBC21explanation),b1);
  3205. }/*]*/
  3206. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  3207. }
  3208. else{
  3209. r92put(((T92*)a1),(T0*)C,X83to_key(_fn));
  3210. }
  3211. /*FI]*/
  3212. _i=(_i)+(1);
  3213. }
  3214. }
  3215.  
  3216.  
  3217. T6 r303can_hide(T303* C,T0* a1,T0* a2){
  3218. T6 R=0;
  3219. /*[IF*/
  3220. if(((C)->_result_type/*56*/)!=((void*)(X93result_type(a1)))){
  3221. /*[IF*/
  3222. if((((C)->_result_type/*56*/)==((void*)(NULL)))||((X93result_type(a1))==((void*)(NULL)))){
  3223. r21add_position(X93start_position(a1));
  3224. r303error(r303start_position(C),((T0*)ms93_64647));
  3225. }
  3226. /*FI]*/
  3227. }
  3228. /*FI]*/
  3229. /*[IF*/
  3230. if(((C)->_arguments/*24*/)!=((void*)(X93arguments(a1)))){
  3231. /*[IF*/
  3232. if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X93arguments(a1))==((void*)(NULL)))){
  3233. r21add_position(X93start_position(a1));
  3234. r303error(r303start_position(C),((T0*)ms93_83182));
  3235. }
  3236.  else if((/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T191*)(((T187*)(X93arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  3237. r21add_position(X93start_position(a1));
  3238. r303error(r303start_position(C),((T0*)ms93_67155));
  3239. }
  3240. /*FI]*/
  3241. }
  3242. /*FI]*/
  3243. /*[IF*/
  3244. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  3245. /*[IF*/
  3246. if(((C)->_result_type/*56*/)!=((void*)(NULL))){
  3247. /*[IF*/
  3248. if(!(X54is_a_in((C)->_result_type/*56*/,X93result_type(a1),a2))){
  3249. /*[IRF3.6append*/{T0* b1=((T0*)ms93_54285);
  3250. r7append((T7*)(oBC21explanation),b1);
  3251. }/*]*/
  3252. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)a2))->_current_type/*0*/);
  3253. r7append((T7*)(oBC21explanation),b1);
  3254. }/*]*/
  3255. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  3256. }
  3257. /*FI]*/
  3258. }
  3259. /*FI]*/
  3260. }
  3261. /*FI]*/
  3262. /*[IF*/
  3263. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  3264. /*[IF*/
  3265. if(((C)->_arguments/*24*/)!=((void*)(NULL))){
  3266. /*[IF*/
  3267. if(!(r187is_a_in((T187*)((C)->_arguments/*24*/),X93arguments(a1),a2))){
  3268. r21add_position(X93start_position(a1));
  3269. r21add_position(r303start_position(C));
  3270. /*[IRF3.6append*/{T0* b1=((T0*)ms93_54285);
  3271. r7append((T7*)(oBC21explanation),b1);
  3272. }/*]*/
  3273. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)a2))->_current_type/*0*/);
  3274. r7append((T7*)(oBC21explanation),b1);
  3275. }/*]*/
  3276. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  3277. }
  3278. /*FI]*/
  3279. }
  3280. /*FI]*/
  3281. }
  3282. /*FI]*/
  3283. R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
  3284. /*[IF*/
  3285. if(R){
  3286. r303merge_header_comments(C,a1);
  3287. }
  3288. /*FI]*/
  3289. return R;
  3290. }
  3291. /*No:FUNCTION.ensure_assertion*/
  3292. /*No:FUNCTION.us_item*/
  3293.  
  3294.  
  3295. T0* r303run_ensure(T0* a1){
  3296. T0* R=NULL;
  3297. T0* _ct=NULL;
  3298. T0* _r=NULL;
  3299. r106clear((T106*)(oBC93assertion_collector));
  3300. /*[IRF3.3clear*/{T0* _default_item=NULL;
  3301. ((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(_default_item);
  3302. }/*]*/
  3303. _ct=/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/);
  3304. r63collect_for((T63*)(X54base_class(_ct)),2,/*X51name*/((T0*)(((T324*)a1))->_name/*16*/));
  3305. _r=r303runnable(oBC93assertion_collector,_ct,a1);
  3306. /*[IF*/
  3307. if((_r)!=((void*)(NULL))){
  3308. {T215*n=malloc(sizeof(*n));
  3309. *n=M215;
  3310. r215make_runnable(n,_r,_ct,a1);
  3311. R=(T0*)n;
  3312. }
  3313. /*[IRF3.3set_header_comment*/((((T215*)(((T215*)R))))->_header_comment)=(((T371*)(oBC93header_comment_memory))->_item/*0*/);
  3314. /*]*/
  3315. /*[IRF3.3clear*/{T0* _default_item=NULL;
  3316. ((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(_default_item);
  3317. }/*]*/
  3318. }
  3319. /*FI]*/
  3320. return R;
  3321. }
  3322. /*No:FUNCTION.us_array*/
  3323.  
  3324.  
  3325. void r303check_obsolete(T303* C){
  3326. /*[IF*/
  3327. if(!(((T22*)(oBC12small_eiffel))->_short_flag/*8*/)){
  3328. /*[IF*/
  3329. if(((C)->_obsolete_mark/*28*/)!=((void*)(NULL))){
  3330. /*[IRF3.6append*/{T0* b1=((T0*)ms214_39396);
  3331. r7append((T7*)(oBC21explanation),b1);
  3332. }/*]*/
  3333. /*[IRF3.6append*/{T0* b1=((T171*)((C)->_obsolete_mark/*28*/))->_to_string/*8*/;
  3334. r7append((T7*)(oBC21explanation),b1);
  3335. }/*]*/
  3336. r303warning(r303start_position(C),((T0*)ms13_166));
  3337. }
  3338. /*FI]*/
  3339. }
  3340. /*FI]*/
  3341. }
  3342.  
  3343.  
  3344. T0* r303try_to_undefine(T303* C,T0* a1,T0* a2){
  3345. T0* R=NULL;
  3346. T0* _fn2=NULL;
  3347. r21add_position(X83start_position(a1));
  3348. _fn2=r85feature_name((T85*)((C)->_names/*8*/),X83to_key(a1));
  3349. /*[IF*/
  3350. if((_fn2)!=((void*)(NULL))){
  3351. X83undefine_in(_fn2,a2);
  3352. }
  3353. /*FI]*/
  3354. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  3355. /*]*/
  3356. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  3357. /*]*/
  3358. /*]*/
  3359. R=r303try_to_undefine_aux(C,a1,a2);
  3360. /*[IF*/
  3361. if((R)!=((void*)(NULL))){
  3362. /*X284set_clients*//*[IRF3.3set_clients*/((((T287*)(((T287*)R))))->_clients)=((C)->_clients/*20*/);
  3363. /*]*/
  3364. r303merge_header_comments(C,R);
  3365. }
  3366. else{
  3367. r63fatal_undefine(((T63*)a2),a1);
  3368. }
  3369. /*FI]*/
  3370. return R;
  3371. }
  3372. /*No:FUNCTION.is_deferred*/
  3373. /*No:FUNCTION.set_clients*/
  3374. /*No:FUNCTION.nb_errors*/
  3375. /*No:FUNCTION.code_ensure*/
  3376.  
  3377.  
  3378. void r303make_routine(T303* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  3379. /*[IRF3.3make_e_feature*/((((T303*)(C)))->_names)=(a1);
  3380. /*]*/
  3381. C->_header_comment=a4;
  3382. C->_arguments=a2;
  3383. C->_obsolete_mark=a3;
  3384. C->_require_assertion=a5;
  3385. }
  3386.  
  3387.  
  3388. T0* r303to_run_feature(T303* C,T0* a1,T0* a2){
  3389. T0* R=NULL;
  3390. r303check_obsolete(C);
  3391. {T388*n=malloc(sizeof(*n));
  3392. *n=M388;
  3393. r388make(n,a1,a2,(T0*)C);
  3394. R=(T0*)n;
  3395. }
  3396. return R;
  3397. }
  3398.  
  3399.  
  3400. void r303merge_header_comments(T303* C,T0* a1){
  3401. /*[IF*/
  3402. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  3403. /*[IF*/
  3404. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  3405. C->_header_comment=/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/);
  3406. }
  3407.  else if((/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  3408. X93set_header_comment(a1,(C)->_header_comment/*12*/);
  3409. }
  3410. /*FI]*/
  3411. }
  3412. /*FI]*/
  3413. }
  3414. /*No:FUNCTION.arguments*/
  3415. /*No:FUNCTION.us_fixed_array*/
  3416. /*No:FUNCTION.require_assertion*/
  3417.  
  3418.  
  3419. void r303make_effective_routine(T303* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  3420. r303make_routine(C,a1,a2,a3,a4,a5);
  3421. C->_local_vars=a6;
  3422. C->_routine_body=a7;
  3423. C->_use_current_state=25;
  3424. }
  3425.  
  3426.  
  3427. void r303warning(T0* a1,T0* a2){
  3428. r21add_position(a1);
  3429. r21warning((T21*)(oBC12eh),a2);
  3430. }
  3431.  
  3432.  
  3433. T0* r303try_to_undefine_aux(T303* C,T0* a1,T0* a2){
  3434. T0* R=NULL;
  3435. {T287*n=malloc(sizeof(*n));
  3436. *n=M287;
  3437. r287from_effective(n,a1,(C)->_arguments/*24*/,(C)->_result_type/*56*/,(C)->_require_assertion/*32*/,(C)->_ensure_assertion/*36*/,a2);
  3438. R=(T0*)n;
  3439. }
  3440. return R;
  3441. }
  3442. /*No:FUNCTION.set_ensure_assertion*/
  3443. /*No:FUNCTION.fz_bad_assertion*/
  3444. /*No:FUNCTION.fz_dot*/
  3445.  
  3446.  
  3447. T6 r303stupid_switch(T303* C,T0* a1,T0* a2){
  3448. T6 R=0;
  3449. T2 _i=0;
  3450. T0* _bcn=NULL;
  3451. T0* _rf=NULL;
  3452. T0* _fn=NULL;
  3453. T0* _rf4=NULL;
  3454. _bcn=((T64*)(((T63*)((C)->_base_class/*4*/))->_name/*24*/))->_to_string/*0*/;
  3455. /*[IF*/
  3456. if(((((T0*)ms14_1764))==((void*)(X83to_string(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/))))&&(((((T0*)ms14_1990))==((void*)(_bcn)))||((((T0*)ms14_14982))==((void*)(_bcn))))){
  3457. _i=(((T328*)a2))->_upper/*8*/;
  3458. R=1;
  3459. while (!((!(R))||((_i)==(0)))) {
  3460. _rf=r24dynamic((T24*)(r328item(((T328*)a2),_i)),a1);
  3461. /*[IF*/
  3462. if(X54is_expanded(X51result_type(_rf))){
  3463. R=0;
  3464. }
  3465. /*FI]*/
  3466. _i=(_i)-(1);
  3467. }
  3468. }
  3469. else{
  3470. _rf4=r24dynamic((T24*)(r328first(((T328*)a2))),a1);
  3471. if(NULL!=(_rf4))switch(((T0*)_rf4)->id) {
  3472. case 388: 
  3473. break;
  3474. default:
  3475. _rf4=NULL;
  3476. };/*[IF*/
  3477. if(r388is_empty_or_null_body(((T388*)_rf4))){
  3478. R=1;
  3479. }
  3480. else{
  3481. _fn=r388is_attribute_reader(((T388*)_rf4));
  3482. /*[IF*/
  3483. if((_fn)!=((void*)(NULL))){
  3484. R=r25stupid_switch(r24get_feature((T24*)(X51run_class(a1)),_fn));
  3485. }
  3486. else{
  3487. _rf=r388is_direct_call_on_attribute(((T388*)_rf4));
  3488. /*[IF*/
  3489. if((_rf)!=((void*)(NULL))){
  3490. R=r25stupid_switch(_rf);
  3491. }
  3492. /*FI]*/
  3493. }
  3494. /*FI]*/
  3495. }
  3496. /*FI]*/
  3497. }
  3498. /*FI]*/
  3499. return R;
  3500. }
  3501.  
  3502.  
  3503. void r303error(T0* a1,T0* a2){
  3504. r21add_position(a1);
  3505. r21error((T21*)(oBC12eh),a2);
  3506. }
  3507.  
  3508.  
  3509. void r303make(T303* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
  3510. r303make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
  3511. C->_result_type=a3;
  3512. }
  3513. /*No:FUNCTION.routine_body*/
  3514. /*No:FUNCTION.end_comment*/
  3515.  
  3516.  
  3517. void r303collect_for(T303* C,T2 a1){
  3518. T0* _er=NULL;
  3519. /*[IF*/
  3520. if((a1)==(1)){
  3521. _er=(C)->_require_assertion/*32*/;
  3522. /*[IF*/
  3523. if((_er)!=((void*)(NULL))){
  3524. /*[IF*/
  3525. if(!(r358fast_has((T358*)(oBC93require_collector),_er))){
  3526. r358add_last((T358*)(oBC93require_collector),_er);
  3527. }
  3528. /*FI]*/
  3529. }
  3530. /*FI]*/
  3531. }
  3532. else{
  3533. /*[IF*/
  3534. if(((C)->_ensure_assertion/*36*/)!=((void*)(NULL))){
  3535. /*[IRF3.3set_item*/((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(((T215*)((C)->_ensure_assertion/*36*/))->_header_comment/*4*/);
  3536. /*]*/
  3537. r215add_into((T215*)((C)->_ensure_assertion/*36*/),oBC93assertion_collector);
  3538. }
  3539. /*FI]*/
  3540. }
  3541. /*FI]*/
  3542. }
  3543. /*No:FUNCTION.local_vars*/
  3544.  
  3545.  
  3546. void r303set_header_comment(T303* C,T0* a1){
  3547. /*[IF*/
  3548. if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)>(1))){
  3549. C->_end_comment=a1;
  3550. }
  3551. /*FI]*/
  3552. }
  3553. /*No:FUNCTION.clients*/
  3554. /*No:FUNCTION.obsolete_mark*/
  3555.  
  3556.  
  3557. T0* r10command_name(void){
  3558. T0* R=NULL;
  3559. R=((T0*)ms14_20868);
  3560. return R;
  3561. }
  3562. T0*oBC1std_error=NULL;
  3563. /*No:COMPILE_TO_C.nb_errors*/
  3564. /*No:COMPILE_TO_C.state*/
  3565. /*No:COMPILE_TO_C.c_suffix*/
  3566. /*No:COMPILE_TO_C.o_suffix*/
  3567. /*No:COMPILE_TO_C.us_compile_to_c*/
  3568.  
  3569.  
  3570. void r10error_level(T10* C,T0* a1){
  3571. C->_state=9;
  3572. /*[IRF3.6append*/{T0* b1=r10command_name();
  3573. r7append((T7*)(oBC21explanation),b1);
  3574. }/*]*/
  3575. /*[IRF3.6append*/{T0* b1=((T0*)ms11_32864);
  3576. r7append((T7*)(oBC21explanation),b1);
  3577. }/*]*/
  3578. /*[IRF3.6append*/{T0* b1=(C)->_level/*4*/;
  3579. r7append((T7*)(oBC21explanation),b1);
  3580. }/*]*/
  3581. /*[IRF3.6append*/{T0* b1=((T0*)ms11_7788);
  3582. r7append((T7*)(oBC21explanation),b1);
  3583. }/*]*/
  3584. /*[IRF3.6append*/{T0* b1=a1;
  3585. r7append((T7*)(oBC21explanation),b1);
  3586. }/*]*/
  3587. /*[IRF3.6append*/{T0* b1=((T0*)ms13_47);
  3588. r7append((T7*)(oBC21explanation),b1);
  3589. }/*]*/
  3590. r21print_as_error((T21*)(oBC12eh));
  3591. }
  3592. /*No:COMPILE_TO_C.root_class*/
  3593.  
  3594.  
  3595. T0* r10system_tools(void){
  3596. if(fBC12system_tools==0){
  3597. fBC12system_tools=1;
  3598. {T36*n=malloc(sizeof(*n));
  3599. *n=M36;
  3600. r36make(n);
  3601. oBC12system_tools=(T0*)n;
  3602. }
  3603. }
  3604. return oBC12system_tools;}
  3605.  
  3606.  
  3607. void r10automat(T10* C){
  3608. T0* _a=NULL;
  3609. T2 _arg=0;
  3610. _arg=1;
  3611. while (!(((_arg)>(/*(IRF4.9argument_count*/((T62*)(r10command_arguments()))->_upper/*8*//*)*/))||(((C)->_state/*0*/)>(7)))) {
  3612. _a=r10argument(_arg);
  3613. {int z1=(C)->_state/*0*/;
  3614.  
  3615. if((0==z1)){
  3616. /*[IF*/
  3617. if((/*(IRF4.6item*/((((T7*)_a))->_storage/*0*/)[(1)-(1)]/*)*/)!=('\55')){
  3618. /*[IF*/
  3619. if(r7has_suffix(((T7*)_a),/*(IRF4.9o_suffix*/r36o_suffix_memory((T36*)(r10system_tools()))/*)*/)){
  3620. r25add_c_object((T25*)(oBC12cpp),_a);
  3621. }
  3622.  else if(r7has_suffix(((T7*)_a),((T0*)ms12_296))){
  3623. r25add_c_object((T25*)(oBC12cpp),_a);
  3624. }
  3625.  else if(((C)->_root_class/*8*/)==((void*)(NULL))){
  3626. C->_root_class=_a;
  3627. r43compute_root_class((T43*)(oBC12run_control),_a);
  3628. C->_state=2;
  3629. }
  3630. else{
  3631. r25add_c_compiler_option((T25*)(oBC12cpp),_a);
  3632. }
  3633. /*FI]*/
  3634. }
  3635.  else if(r7is_equal(ms10_10920,_a)){
  3636. /*[IRF3.3set_no_main*/((((T25*)((T25*)(oBC12cpp))))->_no_main)=(1);
  3637. /*]*/
  3638. }
  3639.  else if(r7is_equal(ms10_7146,_a)){
  3640. /*[IF*/
  3641. if(((C)->_level/*4*/)!=((void*)(NULL))){
  3642. r10error_level(C,_a);
  3643. }
  3644. else{
  3645. /*[IRF3.3set_boost*/((((T43*)((T43*)(oBC12run_control))))->_level)=(-6);
  3646. /*]*/
  3647. C->_level=_a;
  3648. }
  3649. /*FI]*/
  3650. }
  3651.  else if(r7is_equal(ms10_12942,_a)){
  3652. /*[IF*/
  3653. if(((C)->_level/*4*/)!=((void*)(NULL))){
  3654. r10error_level(C,_a);
  3655. }
  3656. else{
  3657. /*[IRF3.3set_no_check*/((((T43*)((T43*)(oBC12run_control))))->_level)=(-5);
  3658. /*]*/
  3659. C->_level=_a;
  3660. }
  3661. /*FI]*/
  3662. }
  3663.  else if(r7is_equal(ms10_28042,_a)){
  3664. /*[IF*/
  3665. if(((C)->_level/*4*/)!=((void*)(NULL))){
  3666. r10error_level(C,_a);
  3667. }
  3668. else{
  3669. /*[IRF3.3set_require_check*/((((T43*)((T43*)(oBC12run_control))))->_level)=(-4);
  3670. /*]*/
  3671. C->_level=_a;
  3672. }
  3673. /*FI]*/
  3674. }
  3675.  else if(r7is_equal(ms10_24622,_a)){
  3676. /*[IF*/
  3677. if(((C)->_level/*4*/)!=((void*)(NULL))){
  3678. r10error_level(C,_a);
  3679. }
  3680. else{
  3681. /*[IRF3.3set_ensure_check*/((((T43*)((T43*)(oBC12run_control))))->_level)=(-3);
  3682. /*]*/
  3683. C->_level=_a;
  3684. }
  3685. /*FI]*/
  3686. }
  3687.  else if(r7is_equal(ms10_35232,_a)){
  3688. /*[IF*/
  3689. if(((C)->_level/*4*/)!=((void*)(NULL))){
  3690. r10error_level(C,_a);
  3691. }
  3692. else{
  3693. /*[IRF3.3set_invariant_check*/((((T43*)((T43*)(oBC12run_control))))->_level)=(-2);
  3694. /*]*/
  3695. C->_level=_a;
  3696. }
  3697. /*FI]*/
  3698. }
  3699.  else if(r7is_equal(ms10_18469,_a)){
  3700. /*[IF*/
  3701. if(((C)->_level/*4*/)!=((void*)(NULL))){
  3702. r10error_level(C,_a);
  3703. }
  3704. else{
  3705. /*[IRF3.3set_loop_check*/((((T43*)((T43*)(oBC12run_control))))->_level)=(-1);
  3706. /*]*/
  3707. C->_level=_a;
  3708. }
  3709. /*FI]*/
  3710. }
  3711.  else if(r7is_equal(ms10_15380,_a)){
  3712. /*[IF*/
  3713. if(((C)->_level/*4*/)!=((void*)(NULL))){
  3714. r10error_level(C,_a);
  3715. }
  3716. else{
  3717. /*[IRF3.3set_all_check*/((((T43*)((T43*)(oBC12run_control))))->_level)=(0);
  3718. /*]*/
  3719. C->_level=_a;
  3720. }
  3721. /*FI]*/
  3722. }
  3723.  else if(r7is_equal(ms10_21120,_a)){
  3724. /*[IF*/
  3725. if(((C)->_level/*4*/)!=((void*)(NULL))){
  3726. r10error_level(C,_a);
  3727. }
  3728. else{
  3729. /*[IRF3.3set_debug_check*/((((T43*)((T43*)(oBC12run_control))))->_level)=(1);
  3730. /*]*/
  3731. C->_level=_a;
  3732. }
  3733. /*FI]*/
  3734. }
  3735.  else if(r7is_equal(ms10_37213,_a)){
  3736. /*[IRF3.3set_case_insensitive*/((((T34*)((T34*)(oBC12eiffel_parser))))->_case_insensitive)=(1);
  3737. /*]*/
  3738. }
  3739.  else if(r7is_equal(ms10_17908,_a)){
  3740. /*[IRF3.3set_no_warning*/((((T21*)((T21*)(oBC12eh))))->_no_warning)=(1);
  3741. /*]*/
  3742. }
  3743.  else if(r7is_equal((T7*)(((T0*)ms13_10392)),_a)){
  3744. }
  3745.  else if(r7is_equal(ms10_6438,_a)){
  3746. r330no_gc((T330*)(oBC12gc_handler));
  3747. }
  3748.  else if(r7is_equal(ms10_10800,_a)){
  3749. r330set_info_flag((T330*)(oBC12gc_handler));
  3750. }
  3751.  else if(r7is_equal(ms10_13491,_a)){
  3752. /*[IRF3.3set_no_strip*/((((T25*)((T25*)(oBC12cpp))))->_no_strip)=(1);
  3753. /*]*/
  3754. }
  3755.  else if(r7is_equal(ms10_13815,_a)){
  3756. /*[IRF3.3set_no_split*/((((T25*)((T25*)(oBC12cpp))))->_no_split)=(1);
  3757. /*]*/
  3758. }
  3759.  else if(r7is_equal(ms10_6552,_a)){
  3760. /*[IRF3.3set_trace*/((((T43*)((T43*)(oBC12run_control))))->_trace)=(1);
  3761. /*]*/
  3762. }
  3763.  else if(r7is_equal(ms10_747,_a)){
  3764. C->_state=3;
  3765. }
  3766.  else if(r7is_equal(ms10_6672,_a)){
  3767. C->_state=4;
  3768. }
  3769.  else if(r7has_prefix(((T7*)_a),((T0*)ms10_312))){
  3770. r25add_c_library((T25*)(oBC12cpp),_a);
  3771. }
  3772.  else if(r7is_equal(ms10_318,_a)){
  3773. C->_state=1;
  3774. }
  3775.  else if(((/*(IRF4.6item*/((((T7*)_a))->_storage/*0*/)[(1)-(1)]/*)*/)==('\55'))&&((/*(IRF4.6item*/((((T7*)_a))->_storage/*0*/)[(2)-(1)]/*)*/)==('o'))){
  3776. r7remove_first(((T7*)_a),2);
  3777. r25set_output_name((T25*)(oBC12cpp),_a);
  3778. /*[IRF3.3set_oflag*/((((T25*)((T25*)(oBC12cpp))))->_oflag)=(((T0*)ms10_318a));
  3779. /*]*/
  3780. }
  3781. else{
  3782. r25add_c_compiler_option((T25*)(oBC12cpp),_a);
  3783. }
  3784. /*FI]*/
  3785. }
  3786.  else 
  3787. if((1==z1)){
  3788. r25set_output_name((T25*)(oBC12cpp),_a);
  3789. C->_state=0;
  3790. }
  3791.  else 
  3792. if((2==z1)){
  3793. /*[IF*/
  3794. if((((/*(IRF4.6item*/((((T7*)_a))->_storage/*0*/)[(1)-(1)]/*)*/)==('\55'))||(r7has_suffix(((T7*)_a),((T0*)ms12_296))))||(r7has_suffix(((T7*)_a),/*(IRF4.9o_suffix*/r36o_suffix_memory((T36*)(r10system_tools()))/*)*/))){
  3795. _arg=(_arg)-(1);
  3796. }
  3797. else{
  3798. C->_start_proc=_a;
  3799. }
  3800. /*FI]*/
  3801. C->_state=0;
  3802. }
  3803.  else 
  3804. if((3==z1)){
  3805. /*[IRF3.3clear*/((((T7*)((T7*)(r25c_compiler()))))->_count)=(0);
  3806. /*]*/
  3807. r7append((T7*)(r25c_compiler()),_a);
  3808. C->_state=0;
  3809. }
  3810.  else {/*[IRF3.3set_cecil_path*/((((T43*)((T43*)(oBC12run_control))))->_cecil_path)=(_a);
  3811. /*]*/
  3812. C->_state=0;
  3813. }}
  3814. _arg=(_arg)+(1);
  3815. }
  3816. /*[IF*/
  3817. if(((C)->_root_class/*8*/)==((void*)(NULL))){
  3818. r35put_string((T35*)(oBC1std_error),((T0*)ms10_38827));
  3819. exit(1);
  3820. }
  3821. /*FI]*/
  3822. /*[IF*/
  3823. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  3824. /*[IF*/
  3825. if(((T43*)(oBC12run_control))->_trace/*4*/){
  3826. /*[IF*/
  3827. if(r43boost((T43*)(oBC12run_control))){
  3828. /*[IRF3.3set_no_check*/((((T43*)((T43*)(oBC12run_control))))->_level)=(-5);
  3829. /*]*/
  3830. }
  3831. /*FI]*/
  3832. }
  3833. /*FI]*/
  3834. r22compile_to_c((T22*)(oBC12small_eiffel),(C)->_root_class/*8*/,(C)->_start_proc/*12*/);
  3835. }
  3836. /*FI]*/
  3837. }
  3838. /*No:COMPILE_TO_C.us_make*/
  3839. /*No:COMPILE_TO_C.fz_dot*/
  3840.  
  3841.  
  3842. T0* r10argument(T2 a1){
  3843. T0* R=NULL;
  3844. R=/*(IRF4.6item*/(((T62*)(r10command_arguments()))->_storage/*0*/)[a1]/*)*/;
  3845. return R;
  3846. }
  3847.  
  3848.  
  3849. void r10make(T10* C){
  3850. /*[IF*/
  3851. if((/*(IRF4.9argument_count*/((T62*)(r10command_arguments()))->_upper/*8*//*)*/)<(1)){
  3852. r36bad_use_exit((T36*)(r10system_tools()),((T0*)ms10_20868));
  3853. }
  3854. /*FI]*/
  3855. r28search_for_verbose_flag((T28*)(oBC12echo));
  3856. C->_start_proc=((T0*)ms14_1696);
  3857. /*[IRF3.3set_drop_comments*/((((T34*)((T34*)(oBC12eiffel_parser))))->_drop_comments)=(1);
  3858. /*]*/
  3859. r10automat(C);
  3860. }
  3861. /*No:COMPILE_TO_C.level*/
  3862. /*No:COMPILE_TO_C.argument_count*/
  3863. /*No:COMPILE_TO_C.exit_failure_code*/
  3864. /*No:COMPILE_TO_C.fz_verbose_flag*/
  3865. /*No:COMPILE_TO_C.start_proc*/
  3866. int fBC1command_arguments=0;
  3867. T0*oBC1command_arguments=NULL;
  3868.  
  3869.